【问题标题】:Rails 4 lambda route request.session not yet loadedRails 4 lambda 路由 request.session 尚未加载
【发布时间】:2013-09-11 06:20:45
【问题描述】:

我在尝试访问我的一个路由限制中的请求会话时遇到问题。我之前在 Rails 3 中使用过类似的东西,并且我在其他网站上也看到过使用类似东西的教程。出于某种原因,尽管在 Rails 4 中这不再有效。是否需要对中间件加载进行调整?

config/routes.rb

admin_constraint = lambda do |request|
  request.session[:user_id] == 1
end

引发的异常:

#<ActionDispatch::Request::Session:0x7fc878b35400 not yet loaded>

【问题讨论】:

    标签: ruby-on-rails lambda routes


    【解决方案1】:

    所以为了让这个工作我必须首先为会话设置一个值。更新示例代码如下:

    admin_constraint = lambda do |request|
      request.session[:init] = true # Starts up the session so we can access values from it later.
      request.session[:user_id] == 1
    end
    

    从这里您可以执行其他操作,例如从给定会话的数据库中加载用户记录:user_id 等。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-08-03
      • 1970-01-01
      • 1970-01-01
      • 2013-11-20
      • 1970-01-01
      • 2015-05-07
      • 2013-09-25
      • 1970-01-01
      相关资源
      最近更新 更多