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