вопрос маршрута рельсов - PullRequest
0 голосов
/ 08 июня 2010

Я пытаюсь создать функцию поиска, которая на высоком уровне работает следующим образом.

1 - у меня есть модель поиска, контроллер с действием search_set и представления / частичные результаты поиска для визуализации поиска. 2 - На домашней странице поисковая форма загружается с пустым поисковым объектом или поисковым объектом, инициализированным сессией [: search] (которая содержит пользовательские настройки поиска, почтовый индекс, близость, порядок сортировки, для каждой страницы и т. Д.). Эта форма имеет действие post (: put) для search_set.

3 - Когда зарегистрированный пользователь выполняет настройку, параметры формы поиска собираются и поисковая запись сохраняется для этого пользователя. Если незарегистрированный пользователь выполняет поиск, то действие набора поиска просто сохраняет параметры в сеансе [: search]. В любом случае поиск выполняется с заданными параметрами и результаты отображаются. На этом этапе URL в адресной строке выглядит примерно так:

http://localhost:3000/searches/search_set?stype=1

В этот момент, если пользователь просто нажимает клавишу ввода в строке адреса, я получаю сообщение об ошибке «Нет действия, на которое было показано шоу» Я предполагаю, что URL содержит search_set, который использует метод put, и хотя у меня есть search_show (: get) действие (которое просто перезапускает поиск в сеансе или сохраняется в базе данных) не вызывается.

Как мне справиться с такой ситуацией, когда я могу направить пользователя, нажимающего ввод в строке адреса, к методу get?

Если это не объясняет проблему, пожалуйста, дайте мне знать, я могу поделиться более подробной информацией / кодом и т. Д.

Спасибо!

1 Ответ

0 голосов
/ 08 июня 2010

Я бы предположил, что если вы создадите свои собственные маршруты вместо использования маршрутов отдыха, это не будет проблемой. Не видя, что именно у вас есть, это может помочь:

map.connect "/searches/", :controller => 'searches', :action => 'show'

Хотя получение предпочтительнее для поиска (общий доступ / URL-адреса закладок и т. Д.), Если вы сохраняете поиск на сервере, уместен почтовый запрос.

Я не уверен, что это помогает, но Thoughtbot недавно опубликовал отличную статью о поиске:

http://robots.thoughtbot.com/post/159805369/search-by-quacking-like-activerecord

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