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





Вы можете использовать переменную 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].
@Biju правильно. Вот документация guides.rubyonrails.org/action_controller_overview.html#filte rs
Означает ли это, что
record_visitбудет вызываться до того, как будет вызвана какая-либо функция в контроллере?