Rails会话启动事件处理程序

时间:2014-11-24 13:35:09

标签: ruby-on-rails

我需要为用户启动新会话时做一些事情。哪个是在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.

}

2 个答案:

答案 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