3

我想检查用户会话中是否第一次调用控制器。类变量是正确的选择吗?关于如何实施此检查的任何良好做法?

4

2 回答 2

3

您可以使用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/

于 2018-12-07T16:16:33.907 回答
3

答案就在您的问题中:在用户会话中

你可以在你的控制器中做这样的事情

before_action :record_visit

# ...


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

稍后您可以检查给定的控制器是否被使用session[:visited_controllets][contoller_class_name]

于 2018-12-07T16:19:32.680 回答