使用Rails 3.2.13,我每次用户注销时都尝试访问Warden Manager before_logout回调

时间:2018-10-22 09:20:42

标签: ruby-on-rails ruby-on-rails-3.2

使用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

0 个答案:

没有答案