Ruby on rails Rails 4 lambda路由请求。会话尚未加载
我在尝试访问路由限制中的请求会话时遇到问题。我以前在Rails3中使用过类似的东西,在其他网站上也看到过类似的教程。出于某种原因,尽管在Rails4中,这不再有效。我是否必须对中间件加载进行调整 config/routes.rbRuby on rails Rails 4 lambda路由请求。会话尚未加载,ruby-on-rails,lambda,routes,Ruby On Rails,Lambda,Routes,我在尝试访问路由限制中的请求会话时遇到问题。我以前在Rails3中使用过类似的东西,在其他网站上也看到过类似的教程。出于某种原因,尽管在Rails4中,这不再有效。我是否必须对中间件加载进行调整 config/routes.rb admin_constraint = lambda do |request| request.session[:user_id] == 1 end 提出的例外情况: #<ActionDispatch::Request::Session:0x7fc878b35
admin_constraint = lambda do |request|
request.session[:user_id] == 1
end
提出的例外情况:
#<ActionDispatch::Request::Session:0x7fc878b35400 not yet loaded>
#
因此,为了让它工作,我必须先为会话设置一个值。更新的示例代码如下:
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,等等