我按照rails3排序的教程,不确定哪一个,我得到了它的工作。我有一张桌子,根据按下的按钮,我希望能够对其中一列进行排序。
以下是按钮的示例: <%= link_to“Time”,:sort => “transit_time”%>
该列如下所示: <%= result.transit_time%> (显然多次)
在控制器中,我最初做过:
@results = Result.order(params [:sort])
这很有效。
但是,现在我添加了一个where子句,以便能够更具体地进行查询,所以我的查询如下所示:
@results = Result.where(“(NOT(train)OR:traincheckbox)AND ...:end_location => params [:end_location]})。order(params [:sort])
这不再有效。原因是当我单击按钮时,它会重新加载页面,并消除所有查询字符串。当我第一次加载页面时,查询字符串如下所示: “http:// localhost:3000 / results?utf8 =%E2%9C%93& start_address = 24 + Grosvenor + Square& start_l ... .etc。” 一旦我按下其中一个排序按钮,它就会变成这样: http://localhost:3000/results?sort=escore
我的所有结果都消失了,因为查询字符串中没有任何内容,没有任何内容可以传递给WHERE子句。
任何想法如何保留这些参数?
很抱歉这很长,但我是铁路的初学者,我需要帮助。
谢谢!
答案 0 :(得分:0)
首先,我强烈建议您使用MetaWhere and MetaSearch Gem
您可以在下一个屏幕中保留变量的一种方法是将它们存储在隐藏字段(表单中)中,然后当您单击排序时,将这些隐藏字段传递给您以形成查询。
希望这有帮助!