0

我有一个处理酒店搜索的控制器(带有 RoR,但假设我有一些服务器正在监听请求)。默认搜索是按城市,因此给定一个城市,控制器将查找该城市的所有酒店。

呈现该视图后,我有一个表单可以让您过滤结果。我的问题是:

我应该如何保存用户偏好(过滤器和城市)的当前状态,以便再次将它们发送到控制器操作?

因此,假设用户点击sort by price,并通过 AJAX 我想获取按价格排序的给定城市(之前选择的)的酒店。我怎么知道他之前选择了哪个城市?我是否需要将其存储在隐藏字段中,或者这样做的适当方式是什么?

如果在按价格过滤订单后,用户选择了豪华酒店选项,则会出现同样的问题。我需要按给定城市获取酒店,按价格和奢侈品类别排序。我应该在哪里存储搜索的先前状态?

谢谢

4

2 回答 2

0

您可以将先前的状态简单地存储在 JavaScript 变量或隐藏的表单字段中。两者都可以,正确的选择将更多地取决于您的代码设计,而不是任何类型的功能/性能问题。如果您无法确定哪种方式更适合您的特定情况,请不要担心,因为它可能无关紧要。

于 2012-07-29T12:29:42.160 回答
0

您可以在用户每次按下 sortBy 时发送所有排序选项,因此每次您的控制器获取城市和价格时,您的 sql 将看起来像“..WHERE city='city1' ORDER BY price ASC, anotherOption DESC”并保存每个用户的结果:我认为最好的地方是 cookie。您还可以仅按 cookie 对结果进行排序,并仅在获得 smth 时更改它们。来自 ajax 调用的新功能。

于 2012-07-29T12:36:22.230 回答