Используя Rails 3.2.13, я пытаюсь получить доступ к обратным вызовам Warden Manager before_logout каждый раз, когда пользователь выходит из системы. - PullRequest
0 голосов
/ 22 октября 2018

Используя Rails 3.2.13, я пытаюсь получить доступ к обратным вызовам Warden Manager before_logout каждый раз, когда пользователь выходит из системы, в основном я хочу сохранить время входа и выхода из системы в своей таблице базы данных user_login_logout, я уже храню время входа в систему втаблица базы данных, и я также хочу хранить время выхода из системы в той же таблице и той же строке.

Я размещаю эту логику в моей модели пользователя.когда я нажимаю logout, тогда Warden::Manager.before_logout будет вызываться, но проблема в том, что ничего не работает, кроме Time.now

. Я хочу знать, почему я не могу получить доступ к модели user_login_logout в модели User в Warden ::Менеджер блока.Я также хочу знать, если мой код неправильный, то каково решение, как я могу получить время выхода из системы и сохранить его в таблице.

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

...