【发布时间】:2011-10-10 22:33:18
【问题描述】:
我已经在我的应用程序控制器中实现了Devise call backs 中的代码。首先这是正确的地方吗?
两个都买了
after_authentication
和
after_set_user
工作。但我收到此错误
before_logout
NoMethodError in Devise::SessionsController#destroy
undefined method `update_attribute' for nil:NilClass
有趣的是数据库记录被更新了,尽管有错误信息。奇怪。
【问题讨论】:
-
您到底想做什么?
-
我有一个用户模型和一个用户登录模型。当用户登录时,我想创建一个用户登录条目,用于存储 IP、会话、日期时间、代理等。当用户注销时,我想用注销时间更新该记录。登录和注销可以从任何页面启动,这就是我将其放在应用程序控制器中的原因,还是应该覆盖设计会话并将代码放在那里?
-
设计中内置的可跟踪模块已经跟踪登录时间、计数和 IP 地址。至于在注销时更新日期线,是的,您会想要覆盖设计会话控制器的 destroy 方法,应该没有必要深入了解warden。
标签: ruby-on-rails devise warden