如何在用户会话(Ruby on Rails)中第一次跟踪控制器时进行跟踪?

时间:2018-12-07 16:10:54

标签: ruby-on-rails controller usersession

我想检查是否在用户会话中第一次调用了控制器。类变量是正确的选择吗?关于如何执行此检查有什么好的做法?

2 个答案:

答案 0 :(得分: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/

答案 1 :(得分: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]

访问了给定的控制器