маршрутизация через строку запроса в рельсах 3? - PullRequest
3 голосов
/ 22 июля 2010

Интересно, можно ли направить запрос на определенный контроллер с помощью строки запроса.

например. если запрос содержит строку запроса "q = hello", он будет отправлен на определенный контроллер.

и если он содержит "search = hello", он будет отправлен на другой контроллер.

это возможно?

спасибо!

Ответы [ 2 ]

1 голос
/ 22 июля 2010

Это довольно странный способ сделать что-то, но вот кое-что, что может помочь.

Предположим, у вас есть такой маршрут:

map.connect ':controller/:action/:id'

Затем / people / edit / 1? пол = мужчина будет направлять к действию редактирования на контроллере людей, а params [: id] будет 1, а params [: пол] будет "мужской".

Итак, чтобы ответить на ваш конкретный вопрос, какНасколько я знаю, нет, ты не можешь этого сделать.Но делать то, что вы говорите, было бы не очень RESTful, если бы вы заботились об этом, и любую нужную вам функциональность можно было бы сделать проще с другими маршрутами.

Например, вы можете иметь aq и aпоиск действий в вашем контроллере.С маршрутом выше, вашими примерами будут / people / q / hello и / people / search / hello.

Или у вас может быть маршрут, подобный этому:

map.connect ':controller/:action'

А затем / people / index? Q = hello и / people / index? Search = hello можно отфильтровать в коде с помощьюоператор if для params [].

Повторяю: нет (насколько я знаю), но вы все равно не должны этого делать.

0 голосов
/ 01 марта 2013

Вот решение на случай, если кто-то достигнет здесь во время поиска:

Настройка маршрутов Rails на основе QueryString

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