Как отследить самый первый раз, когда контроллер вызывается в пользовательской сессии (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]