Как отследить самый первый раз, когда контроллер вызывается в пользовательской сессии (Ruby on Rails)?

Я хотел бы проверить, вызывается ли контроллер в первый раз в сеансе пользователя. Является ли переменная класса правильным выбором для этого? Любая хорошая практика относительно того, как осуществить эту проверку?

2 ответа

Ты можешь использовать session переменная, которая устанавливает информацию в пользовательской сессии. Например:

if session[:my_controller_accessed]
  do_stuff_for_another_visit
else
  session[:my_controller_accessed] = true
  do_stuff_for_first_visit
end

Больше на сессиях: https://www.justinweiss.com/articles/how-rails-sessions-work/

Ответ на ваш вопрос: в сеансе пользователя

Вы можете сделать что-то подобное в вашем контроллере

before_action :record_visit

# ...


def record_visit
  session[:visited_controllets] ||= {}
  session[:visited_controllets][self.class.name] = true
end

Позже вы можете проверить доступ к данному контроллеру с помощью session[:visited_controllets][contoller_class_name]

Другие вопросы по тегам