【发布时间】:2013-09-23 10:52:09
【问题描述】:
如果我有以下routes.rb:
MyApp::Application.routes.draw do
resources :foo
end
会生成一个会话 cookie:
$ curl -s -D - http://127.0.0.1:3000/foo -o /dev/null | grep Set-Cookie
Set-Cookie: _myapp_session=...; path=/; HttpOnly
$
但如果我将路线更改为:
MyApp::Application.routes.draw do
scope "/bar" do
resources :foo
end
end
没有cookie:
$ curl -s -D - http://127.0.0.1:3000/bar/foo -o /dev/null | grep Set-Cookie
$
会话 cookie 和路由范围之间的关系是什么?如何在这两种情况下保持相同的行为?
【问题讨论】:
-
恐怕您在上一个示例中遇到 500 内部错误或 404 未找到,因此无法设置 cookie。
-
为什么我会得到 404?
scope将 /bar/foo 请求路由到 FooController。 -
我说可能有错误但没有说一定是404。500是可能的。为什么不直接在浏览器中查看呢?
-
当然,我在浏览器中看到了该站点。 curl 命令只是一个使用示例。这两个示例都有效,减去了第二个示例的 cookie 生成。
-
我无法重现您的问题。你重启 Rails 服务器了吗?
标签: ruby-on-rails ruby cookies scope routes