Nir*_*hah 7 ruby-on-rails devise ruby-on-rails-3
我在Rails 3应用程序中使用设计.
我想在成功登录后更新用户的某些属性.
我这样做的方式如下:
我在application_controller.rb中添加了以下代码
def after_sign_in_path_for(user)
@user = current_user
@user.status = "online"
@user.save
root_path
end
Run Code Online (Sandbox Code Playgroud)
是否可以使用不同的方法来执行此操作而不使用用于定义after_sign_in_path的方法?
提前致谢!
您可以使用 hooks to warden 来完成此操作。
##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
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1936 次 |
| 最近记录: |