2011-07-14 35 views
0

我也跟着上Rails3中的教程排序,不知道哪一个,我得到了它的工作。我有一个表,并根据按钮按下时,我希望能够进行排序的一列。Rails3中排序where子句问题

下面是按钮的一个示例: <%=的link_to “时间”,:排序=> “transit_time” %>

柱看起来像这样: <%= result.transit_time%> (多次明显)

在控制器中,本来我:

@Results = Result.order(PARAMS [:排序])

而且吨他的工作。

不过,现在我已经添加了一个WHERE子句,以便能够更具体的查询,所以我的查询看起来是这样的:

@Results = Result.where(“(NOT(火车)OR:traincheckbox)AND ...:end_location => params [:end_location]})。order(params [:sort])

这个工作不长,原因是当我点击按钮时,它重新加载页面,并消除所有查询字符串当我第一次加载页面的查询字符串看起来是这样的: 的“http://本地主机:3000/UTF8结果=%E2%9C%93个& START_ADDRESS = 24 +格罗夫纳广场+ & start_l。 。 .etc“ 有一次我推的排序按钮之一它变成这样:。 http://localhost:3000/results?sort=escore

我所有的结果中消失,因为没有什么在查询字符串,没有什么要传递到WHERE子句

任何想法如何保持这些PARAMS礼物?

遗憾的是很长,但我在轨道相对初学者,我需要帮助。

谢谢!

+0

请使用四个空间缩进或反引号(')感谢格式化你的代码。 –

回答

0

首先,我强烈建议你使用MetaWhere and MetaSearch Gem

你可以在下一个屏幕上保存变量的一种方法是将它们存储在隐藏的字段中(表单),然后当你点击sort时,通过这些隐藏字段以形成您的查询。

希望这会有所帮助!