2011-07-01 27 views
7

Używam programisty w aplikacji Rails 3.Aktualizuj atrybuty po zalogowaniu się Wymyśl

Chciałbym zaktualizować niektóre atrybuty użytkownika na sukces znak w

Robię to w następujący sposób:.

I dodaje następujący kod do application_controller.rb

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

    root_path 
end 

Czy jest możliwe zastosowanie innej metody i nie użycie metody, która jest używana do definiowania ścieżki after_sign_in_path?

Z góry dziękuję!

+3

Sprawdź tę odpowiedź [http://stackoverflow.com/questions/4850057/devise-call-backs](http://stackoverflow.com/questions/4850057/devise-call-backs) – eugen

+0

Dzięki eugen! Właśnie tego szukałem! –

+1

Eugen, czy możesz "odpowiedzieć" na to pytanie, wskazując adres URL? W ten sposób pytanie to nie pojawi się w pytaniach bez odpowiedzi. –

Odpowiedz

3

Możesz to zrobić za pomocą haków do strażników.

##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 
Powiązane problemy