我应该使用cookie,会话值还是隐藏字段来存储需要在请求之间保留的数据项?

时间:2010-12-14 03:58:35

标签: ruby-on-rails ruby-on-rails-3

这是一个Rails 3项目。

如果我在那里存储查询值,我是否滥用cookie?我有一个用户可以“向下钻取”的数据集,因此当用户点击数据时,他会聚集一堆查询值,进一步限制下一个请求中显示的数据。

现在我正在使用cookie做这件事,并且效果很好,除了我无法弄清楚是否启用了Cookie。因此,一些使用IE的人给了我适合,因为应用程序失败了没有错误。

我曾经把这样的值放在一个会话变量中,这个值很有效,直到它神秘地没有,即当memcached老化或清除它们时。我不希望将值保留在db中的会话中,因为我不希望每次请求都有额外的命中。

所以我想我可以将这些值放在隐藏的表单字段中,或者将它们附加到我每次呈现的页面上的链接中。有没有传统的Rails方法来做到这一点,我错过了?

1 个答案:

答案 0 :(得分:2)

如果您显示的是不同的结果集,则网址应反映此情况。这使得URL查询参数成为自然选择。这提供了几个好处:

  • 根本没有国家。您不必存储任何内容或破坏HTTP的无状态特性。
  • 查询结果和网址之间存在一对一的对应关系。
  • 您可以链接到查询结果。
  • 永远适用于所有事情。