rails3 сортировать, где вопрос пункт - PullRequest
0 голосов
/ 14 июля 2011

Я следовал учебнику по сортировке rails3, не уверен, какой именно, и я получил его на работу. У меня есть таблица, и в зависимости от нажатой кнопки, я хотел иметь возможность сортировки по одному из столбцов.

Вот пример кнопок: <% = link_to "Время",: sort => "транзитное время"%>

Столбец выглядит так: <% = result.transit_time%> (очевидно, несколько раз)

В контроллере я изначально сделал:

@ results = Result.order (params [: sort])

И это сработало.

Тем не менее, теперь я добавил предложение where для возможности более конкретного запроса, поэтому мой запрос выглядит следующим образом:

@ results = Result.where ("(НЕ (поезд) ИЛИ: traincheckbox) И...: 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.

ЛЮБАЯ ИДЕЯ, КАК СОХРАНИТЬ НАСТОЯЩИЕ ПАРАМЫ?

Извините, что долго, но я относительный новичок в рельсах, и мне нужна помощь.

Спасибо!

1 Ответ

0 голосов
/ 14 июля 2011

Прежде всего, я настоятельно рекомендую вам использовать MetaWhere и MetaSearch Gem

Один из способов сохранить переменные, присутствующие на следующем экране, - сохранить их в скрытых полях (формы), затем при нажатии кнопки сортировки передайте эти скрытые поля для формирования запроса.

Надеюсь, это поможет!

...