不推荐为单个控制器禁用会话

时间:2011-02-04 15:29:05

标签: ruby-on-rails-3

问题是;

class ApplicationController < ActionController::Base
  # Pick a unique cookie name to distinguish our session data from others'
  session :session_key => '_simple_blog'
  #session :disabled => true

  private #------------

    def authorize_access
      if !session[:user_id]
        flash[:notice] = "Please log in."
        redirect_to(:controller => 'staff', :action => 'login')
        return false
      end   
    end

end

错误消息是

  

弃用警告:不推荐为单个控制器禁用会话。会话现在已加载延迟。因此,如果您不访问它们,请考虑它们。您仍然可以使用request.session_options修改会话cookie选项。

有人可以指出正确的方向。

由于

1 个答案:

答案 0 :(得分:6)

您收到此警告是因为您通过session方法显式加载会话上下文。你应该在一个动作中使用request.session_options[:session_key] = 'new_session_key',因为框架现在懒得加载上下文(如你所见)(如你所见)。如果要对所有操作执行此操作,请创建方法并使用before_filter

class ApplicationController < ActionController::Base
  before_filter :setup_session_key

  protected

    def setup_session_key
      # Pick a unique cookie name to distinguish our session data from others'
      request.session_options[:session_key] = '_simple_blog'
    end
end