Ruby on rails 3 设计不传播到子域的托管会话

Ruby on rails 3 设计不传播到子域的托管会话,ruby-on-rails-3,devise,Ruby On Rails 3,Devise,我正在使用Desive在Rails 3.1应用程序中管理身份验证。它在我的生产服务器上运行得很好。但是我刚刚设置了一个新的测试服务器,如果我登录到主站点,访问子域就无法识别会话。它要求我再次登录 我想不起在哪里对这些信息进行故障排除。这似乎是一个饼干设置 我有指向每个站点、生产和测试的域。生产版以.net结尾,测试版以.co结尾 有人能给我指出正确的方向吗?我认为这不是设计设置,而是会话和cookie设置 您可以通过设置变量YourApp::Application.config.session

我正在使用Desive在Rails 3.1应用程序中管理身份验证。它在我的生产服务器上运行得很好。但是我刚刚设置了一个新的测试服务器,如果我登录到主站点,访问子域就无法识别会话。它要求我再次登录

我想不起在哪里对这些信息进行故障排除。这似乎是一个饼干设置

我有指向每个站点、生产和测试的域。生产版以.net结尾,测试版以.co结尾


有人能给我指出正确的方向吗?

我认为这不是设计设置,而是会话和cookie设置

您可以通过设置变量
YourApp::Application.config.session

您可以在
environment.rb
文件或
config/initializers/session\u store.rb
中执行此操作。session_store.rb的示例如下

YourApp::Application.config.session = {
 :session_domain => '.yourdomain.com',
 :session_key => '_yourapp',
 :expire_after => 14*24*3600,
 #:secure => true, #for secure/ssl sessions and such
 :secret      => 'somesecretgobledygook' 
}
请注意,
session\u domain
将其设置为
。yourdomain.com
可使cookie跨子域工作

这适用于会话。Cookie也有类似的设置