2011-03-17 37 views
4

所以,我有兩個Heroku的應用:子域會話在Heroku中使用/不使用自定義域時,無法在Rails 2.3和Rails 3中使用?

production-app.com,我一直在使用與Zerigo Heroku的自定義域插件(不是通配符幾個子域域插件):

development-app.heroku.com,我也有這些自定義子域,但因爲我沒有一個定義域,我只是用wildcard addon

在我的routes.rb中,使用Subdomain-Fu,我在本地和在兩個Heroku應用程序中都有子域名。

我現在面臨的問題是,如何讓所有子域的會話保持同步

我已經嘗試添加這production.rb

ActionController::CgiRequest::DEFAULT_SESSION_OPTIONS.update(:session_domain => '.production-app.com') 

即使這樣的組合:

begin 
    config.action_controller.session[:domain] = '.production-app.com' 
    config.action_controller.session[:session_domain] = '.production-app.com' 
rescue 
    config.action_controller.session = {:domain => '.production-app.com', :session_domain => ".production-app.com"} 
end 

...併爲開發站點,這兩種:

ActionController::CgiRequest::DEFAULT_SESSION_OPTIONS.update(:session_domain => '.heroku.com') 
# or 
ActionController::CgiRequest::DEFAULT_SESSION_OPTIONS.update(:session_domain => '.development-app.heroku.com') 

這些都不會保留子域之間的會話。當我擁有一個自定義域名並且剛剛運行Heroku子域名時,如何獲得此工作?

謝謝!

回答

7

在你的config /初始化/ session_store.rb,告訴Rails在所有域設置Cookie:

Rails.application.config.session_store :cookie_store, :key => '_yourapp_session', :domain=>:all 

與此相同SO question

如果你想發展之間的」堅持你的會話-app.heroku.com「和」production-app.com「,除非它們是相同的代碼庫,否則無法完成。如果它們是相同的代碼庫,然後使用你的應用程序控制器上的before_filter重定向到production-app.com

0

在development-app.heroku.com,我也有這些自定義子域, 但因爲我不沒有自定義域名,我只使用wildcard addon

這個插件是否仍然可以使用自定義子域名如api.mydevdomain.herokuapp.com

相關問題