0

我已经在我的应用程序控制器中实现了设计回调中的代码。首先这是正确的地方吗?

我得到了两个

after_authentication 

after_set_user

去工作。但我得到这个错误

before_logout

NoMethodError in Devise::SessionsController#destroy
undefined method `update_attribute' for nil:NilClass

有趣的是,数据库记录已更新,尽管出现错误消息。奇怪的。

4

1 回答 1

1

这是前一阵子。当我实现 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
于 2012-03-20T23:40:41.680 回答