2010-09-14 91 views
1

我在assets.domain.com上设置了一个资产主机,但看起来cookies正在发送请求到assets.domain.com。我在某处读到,如果你有Cookie设置为domain.com,那么这将发生。Rails:只在www子域设置cookie?

所以我想我只是设置cookies到www.domain.com,这样对assets.domain.com的请求将不会发送cookie。 (我也有一个从domain.com到www.domain.com的永久重定向)

我该如何在Rails中执行此操作?

回答

2

要设置特定域的cookie:

cookies[:my_cookie] = {:value => 'Tasty Cookie', :domain => 'www.domain.com'} 

有一个问题是,您还必须指定域,当你删除特定域的cookie:

cookies.delete(:my_cookie, :domain => 'www.domain.com') 

为了确保我不不要忘记,我通常会帮助设置和删除默认域始终指定的cookie。

+0

嗨,有没有某种全局设置,所以我所有的cookie都设置在该子域? – 2010-09-14 05:12:58

+0

有会话cookie(谷歌为它),但常规cookie仍然会在旧域。如果你不喜欢从辅助方法中设置/删除cookie的想法,我已经看到人们通过扩展ActionController :: Cookies :: CookieJar来包含它们的默认域来解决这个问题。 – jdeseno 2010-09-14 14:40:07