Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails Rails 4 lambda路由请求。会话尚未加载_Ruby On Rails_Lambda_Routes - Fatal编程技术网

Ruby on rails Rails 4 lambda路由请求。会话尚未加载

Ruby 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

我在尝试访问路由限制中的请求会话时遇到问题。我以前在Rails3中使用过类似的东西,在其他网站上也看到过类似的教程。出于某种原因,尽管在Rails4中,这不再有效。我是否必须对中间件加载进行调整

config/routes.rb

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,等等