Rails 3 cookies不会永久保存

问题描述:

我最近升级到Rails 3.0.7(来自Rails 2),我突然发现我的cookies不再有效。在我能够设定到期日之前,一切都很顺利。我知道新的cookies。做事的永久方式,但这似乎也没有效果(我的理解是旧的方式应该无论如何)。Rails 3 cookies不会永久保存

这里是我的代码,这是非常简单的:

cookies[:remember_me_id] = { :value => user.id.to_s, :expires => 365.days.from_now } 
cookies[:remember_me_code] = { :value => Digest::SHA256.hexdigest(user.cookie_code), :expires => 365.days.from_now } 

只是要100%的清楚,我已经试过这还有:

cookies.permanent[:remember_me_id] = user.id.to_s 
cookies.permanent[:remember_me_code] = Digest:SHA256.hexdigest(user.cookie_code) 

的cookie被创建,但问题是它们将在浏览器关闭时设置为过期。我已经在Firefox和IE中检查过了。在Firefox中,当我查看cookie时,它说到期时间是浏览器关闭的时间。这不是我想要的。

有什么简单的我在这里失踪?必须使用一些新的Rails 3设置来保存Cookie?

我一直在遇到同样的问题,但只有在MS Windows环境下使用WEBrick进行开发时:Rails 3.0.5,ruby 1.8.7(2011-02-18 patchlevel 334)[i386-mingw32]。

我发现cookie expiry在我平时的linux环境下运行WEBrick上执行相同的代码时能够按预期工作:Rails 3.0.5,ruby 1.8.7(2010-08-16 patchlevel 302)[x86_64-linux]) 。上面列出的两种方法(设置:明确过期或使用“永久”访问器)似乎可以在我的Linux机器上运行。

因为问题似乎与Windows环境隔离,所以我没有详尽地搜索解决方案......但粗略搜索没有发现答案。这个问题你有没有进一步的运气?

您是在Windows上开发并正在为开发环境切换一个选项吗? (显然不是理想的)

+0

我仍然有这个问题,但是,是的,我在Windows上开发和使用WEBrick。我还没有机会看到服务器上的生产模式是如何工作的,因为我的应用程序没有接近完成。我在这里发现了另一个问题(没有出现在搜索中),解决了同样的问题,但没有真正的答案。显然这是一个WEBrick的事情。只要它只影响我的开发和测试,我不会太在意。不过,这有点烦人。 – seaneshbaugh