Обновить атрибуты после входа в систему - PullRequest
7 голосов
/ 01 июля 2011

Я использую devise в приложении Rails 3.

Я хотел бы обновить некоторые атрибуты пользователя при успешном входе.

Я делаю это следующим образом:

Я добавил следующий код в application_controller.rb

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

   root_path
end

Возможно ли иметь другой метод для этого и не использовать метод, который используется для определения after_sign_in_path?

Заранее спасибо!

1 Ответ

3 голосов
/ 02 августа 2012

Вы можете сделать это с помощью крючков для защиты.

##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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...