2011-07-14 55 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時,通過這些隱藏字段以形成您的查詢。

希望這會有所幫助!