Используя ресурсы rails (REST), как я могу использовать форму для фильтрации результатов по запросам GET (т.е. / products) - PullRequest
0 голосов
/ 24 июня 2010

Я новичок в рельсах и не могу понять, как это сделать РЕСТАЛЬНО. У меня есть маршрут, установленный как map.resources :products, и я хочу как-то отфильтровать результаты, возвращаемые действием index. Например, вы идете в / products, который вызывает действие index по умолчанию для ресурсов, а затем на этой странице есть форма фильтра с левой стороны. Вы можете проверить некоторые параметры фильтра и затем отправить эту форму, которая затем будет отображать в основном ту же страницу, но с отфильтрованными результатами (то есть со всем, что стоит меньше, чем $ X).

Изначально я думал просто проверить метод HTTP в методе index контроллера продуктов, если get, отобразить как обычно, если post, применить фильтр. Тем не менее, это не RESTful, и я хотел бы найти RESTful способ сделать это, что также элегантно (с точки зрения кода). Спасибо за помощь.

Полагаю, я мог бы использовать строку запроса, но я бы предпочел сохранить чистоту URL-адреса, так как после его нормальной работы я бы хотел использовать AJAX для обновления списка на лету.

1 Ответ

4 голосов
/ 24 июня 2010

Это именно то, для чего нужны параметры запроса. Вы все еще используете то же действие REST, то есть индекс для продуктов. Для вашего примера, URL должен быть

/ продукты? Max_cost = х

В вашем контроллере ваше действие индекса должно просто смотреть на параметры [: max_cost] или любые другие фильтры, которые вы хотите поддерживать, чтобы изменить запрос и отобразить результаты.

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