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

Xcl*_*ive 2 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
Run Code Online (Sandbox Code Playgroud)

错误信息是

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

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

谢谢

Mic*_*ley 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
Run Code Online (Sandbox Code Playgroud)