Я поместил эту строку в свой routes.db файл:
map.mything '/mything', :controller => 'mything', :action => 'list'
Но я получаю эту ошибку, когда я перехожу к http://localhost:3000/mything, я получаю эту ошибку:
Unknown action
No action responded to index. Actions: list
Почему это пытается использовать индекс вместо списка? Я думал это путем установки
:action => 'list'
это использовало бы действие списка? Спасибо за чтение.
Вы должны поместить именованные маршруты над маршрутами по умолчанию.
Я помещаю такие именованные маршруты в начало файла routes.rb, чтобы они всегда оценивались первыми.
ActionController::Routing::Routes.draw do |map|
map.about 'about', :controller => 'home', :action => 'about'
map.contact 'contact', :controller => 'home', :action => 'contact'
# MORE CONFIG
map.connect ':controller/:action/:id'
map.connect ':controller/:action/:id.:format'
end
Соглашаясь с Джимом Шубертом, поместите именованные маршруты выше маршрутов по умолчанию.
Другая вероятная проблема заключается в том, что у вас есть что-то вроде:
map.resources :mything
что устанавливает индексное действие на контроллере в результате того, что вы привязываете модель
Извините за потенциально очевидный вопрос, но пробовали ли вы перезапустить приложение? Некоторые маршруты не будут регистрироваться, пока вы не перезапустите приложение (RESTful-ресурсы никогда не требуют перезапуска приложения, но другие часто требуют).