我在应用程序控制器中的Devise call backs中实现了代码。首先,这是正确的地方吗?
我得到了
after_authentication
和
after_set_user
上班。但是我得到了这个错误
before_logout
NoMethodError in Devise::SessionsController#destroy
undefined method `update_attribute' for nil:NilClass
有趣的是数据库记录更新,显示错误消息。奇怪。
答案 0 :(得分:0)
这是一段时间了。当我实现after_authentication和before_logout时,我得到了多条记录,真的很奇怪。
澄清我想在每个会话上存储ip等,而不仅仅是最后一个会话。
我通过在config / initializers / devise.rb中添加它来解决它。添加您希望存储的有关会话的代码。
Warden::Manager.after_authentication do |user,auth,opts|
#store what ever you want on login
end
Warden::Manager.before_logout do |user,auth,opts|
# store what ever you want on logout
# If not in initializer it will generate two records (strange)
end