Как я фиксирую эту ошибку маршрутизации в Ruby on Rails?

Я поместил эту строку в свой routes.db файл:

map.mything '/mything', :controller => 'mything', :action => 'list'

Но я получаю эту ошибку, когда я перехожу к http://localhost:3000/mything, я получаю эту ошибку:

Unknown action
No action responded to index. Actions: list

Почему это пытается использовать индекс вместо списка? Я думал это путем установки

:action => 'list'

это использовало бы действие списка? Спасибо за чтение.

1
задан ben 28 June 2010 в 01:59
поделиться

3 ответа

Вы должны поместить именованные маршруты над маршрутами по умолчанию.

Я помещаю такие именованные маршруты в начало файла 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
1
ответ дан 2 September 2019 в 23:27
поделиться

Соглашаясь с Джимом Шубертом, поместите именованные маршруты выше маршрутов по умолчанию.

Другая вероятная проблема заключается в том, что у вас есть что-то вроде:

map.resources :mything

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

1
ответ дан 2 September 2019 в 23:27
поделиться

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

0
ответ дан 2 September 2019 в 23:27
поделиться
Другие вопросы по тегам:

Похожие вопросы: