使用Rails 3.2.13,我每次用户注销时都尝试访问Warden Manager before_logout回调,主要是我想将登录和注销时间存储在数据库表中,即user_login_logout,我已经将登录时间存储在数据库表,我也想将注销时间存储在同一表和同一行中。
我将此逻辑放在我的用户模型中。当我按登出键时,将呼叫Warden::Manager.before_logout
,但问题是除Time.now
我想知道为什么我无法在Warden :: Manager块内的User模型中访问user_login_logout模型。我还想知道我的代码是否错误,那么解决方案是什么,如何获得注销时间并将其存储在表中。
user.rb
class User < ActiveRecord::Base
has_many :user_login_logouts
Warden::Manager.before_logout do |user,auth,opts|
_logout_time = Time.now
puts _logout_time
_user_role_id = self.user_login_logouts.last.id
if _user_role_id.present?
UserLoginLogout.update_column(sign_out_at: Time.now)
end
end
错误
未定义的方法user_login_logouts