Rails 3 cookies不会永久保留

时间:2011-07-01 00:17:18

标签: ruby-on-rails ruby cookies

我最近升级到Rails 3.0.7(来自Rails 2),我突然发现我的cookie不再有效了。在我能够设定到期日之前,一切都很顺利。我知道新的cookies.permanent做事的方式,但似乎也没有用(我的理解是旧的方式应该工作)。

这是我的代码,它非常直接:

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保持不变?

1 个答案:

答案 0 :(得分:1)

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

我发现在我常用的Linux环境中运行的WEBrick上执行相同的代码时,cookie到期工作正常:Rails 3.0.5,ruby 1.8.7(2010-08-16 patchlevel 302)[x86_64-linux])。上面列出的两种方法(设置:显式过期或使用“永久”访问器)似乎都适用于我的Linux机器。

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

您是否正在开发Windows并且正在为您开启开发环境选项? (显然不是理想的)