我需要为用户启动新会话时做一些事情。哪个是在rails中正确的地方? 我正在寻找类似于global.asax中asp.net的session_start的东西。
在ASP.net中有处理程序
session_start()
{
// This will be executed everything when a new users visits the site very first time.
}
答案 0 :(得分:1)
通过在application_controller.rb中使用before_filter设置会话变量,可以最好地满足您的需求:
before_filter :set_session_thing
def set_session_thing
session[:your_variable] ||= "your_value"
end
这将在每个请求之前运行。那是你在寻找什么?
您应该在这里查看文档: http://guides.rubyonrails.org/action_controller_overview.html#accessing-the-session
答案 1 :(得分:1)
我没有像ASP这样的对应方法,你需要根据它们是否存在来对条件值进行条件设置,也许是在应用程序控制器方法中(所以在所有页面上运行)。 E.g:
/controllers/application_controller.rb
def set_session
session[:var1] ||= "x"
session[:var2] ||= "y"
end
然后在文件的顶部:
class ApplicationController < ActionController::Base
before_filter :set_session