2011-07-01 40 views
7

Tôi đang sử dụng phát minh trong ứng dụng Rails 3.Cập nhật thuộc tính sau khi đăng nhập Devise

Tôi muốn cập nhật một số thuộc tính của một người dùng trên một dấu hiệu thành công trong việc

tôi đang làm nó theo cách sau:.

tôi thêm vào sau mã để application_controller.rb

def after_sign_in_path_for(user) 
    @user = current_user 
    @user.status = "online" 
    @user.save 

    root_path 
end 

Có thể có phương pháp khác để thực hiện điều này và không sử dụng phương pháp được sử dụng để xác định after_sign_in_path không?

Cảm ơn trước!

+3

Kiểm tra câu trả lời này [http://stackoverflow.com/questions/4850057/devise-call-backs](http://stackoverflow.com/questions/4850057/devise-call-backs) – eugen

+0

Cảm ơn eugen! Đó chính xác là những gì tôi đang tìm kiếm! –

+1

Eugen, bạn có thể "trả lời" câu hỏi này bằng cách trỏ đến URL không? Bằng cách đó câu hỏi này sẽ không hiển thị trong các câu hỏi chưa được trả lời. –

Trả lời

3

Bạn có thể thực hiện việc này bằng móc để điều chỉnh.

##config/initializers/devise.rb 

Warden::Manager.after_authentication do |user,auth,opts| 
    user.update_attribute(:currently_signed_in, true) 
end 

Warden::Manager.before_logout do |user,auth,opts| 
    user.update_attribute(:currently_signed_in, false) 
end 
Các vấn đề liên quan