Недавно я начал проект Rails и решил использовать контроллеры RESTful. Я создал контроллеры для своих ключевых объектов (например, Country) и добавил index
, new
, edit
, create
, show
, update
и delete
. Я добавил свой map.resources :country
в свой файл маршрутов, и жизнь была хорошей.
После небольшого развития, я начал сталкиваться с проблемами. Мне иногда требовались дополнительные действия в моем контроллере. Сначала появилось действие search
, которое вернуло опции для моего окна поиска автозаполнения. Затем появилась необходимость отображать страны по-разному в разных местах приложения (отображаемые данные были разными, поэтому это были не только два представления). Я добавил действие index_full
. Затем я хотел показать страну по имени в URL, а не по id, поэтому я добавил действие show_by_name
.
Что вы делаете, когда вам нужны действия за пределами стандартных index
, new
, edit
, create
, show
, update
, delete
в контроллере RESTful в Rails? Нужно ли добавлять (и поддерживать) ручные маршруты в файле routes.rb(что является болью), они идут в другом контроллере, я становлюсь unRESTful или мне не хватает чего-то фундаментального?
Думаю, я спрашиваю, мне нужно больше работать и добавлять действия в файл routes.rb для привилегии быть RESTful? Если бы я не использовал map.resources
для добавления свойств REST, стандартные маршруты :controller/:action, :controller/:action/:id
обрабатывали бы почти все автоматически.