Rails中的会话,子域和authlogic问题

我有一个带有authlogic身份validation的rails应用程序和一个用subdomain-fu构建的username.domain.com结构。

但是当我从domain.com转到username.domain.com时,我的会话中断了。 我试过补充一下

config.action_controller.session = {:domain => '.localhost:3000'} 

到我的development.rb,但接缝打破authlogic禁用注销/登录。

关于该怎么做的任何建议?

提前致谢!

您在开发模式中遇到此问题,但可能在prod模式下没有此问题..您正在尝试设置顶级cookie。 你的浏览器不会让你这样做。 你想要做什么

 config.action_controller.session = {:domain => '.localhost:3000'} 

就像说的一样好

 config.action_controller.session = {:domain => '.com'} 

尝试创建自定义本地域,如localhost.localdomain或dummylocal.com或其他东西,这将使其工作。

 config.action_controller.session = {:domain => 'localhost.localdomain'} config.action_controller.session = {:domain => 'dummylocal.com'} 

对于Rails3,上面的代码将引发NoMethodError

 undefined method `session=' for ActionController::Base:Class 

因此,对于Rails3,您不应该更改环境配置,但应将app/config/initializers/session_store.rb为:

 YourAppName::Application.config.session_store :active_record_store, {:key => '_your_namespace_session', :domain => '.yourdomain.com'} 

也许这可以帮助: http : //erikonrails.snowedin.net/ ? p = 248 ?