Я знаю, что это вопрос новичка, но я не видел объяснения, и я бы его хотел.
Что именно это означает, когда Rails выдает ошибку маршрутизации, подобную этой:
Routing Error
No route matches {:action=>"show", :controller=>"library_imports", :library_id=>#<Library id: 1, ...
Что меня удивляет, так это то, что само сообщение показывает, что мой запрос направляется на действие show
контроллера library_imports
. Как это происходит, если URL-адрес запроса не соответствует ни одному из маршрутов?
Ради полноты, URL, который я нажимаю, приводит к этой ошибке:
http://localhost:3000/libraries/2/library_imports
который должен соответствовать действию "index", а не "show".
Соответствующая часть config/routes.rb
:
Import::Application.routes.draw do
resources :libraries do
resources :library_imports
end
А соответствующая часть rake routes
выхода равна:
library_library_imports GET /libraries/:library_id/library_imports(.:format) {:action=>"index", :controller=>"library_imports"}
POST /libraries/:library_id/library_imports(.:format) {:action=>"create", :controller=>"library_imports"}
new_library_library_import GET /libraries/:library_id/library_imports/new(.:format) {:action=>"new", :controller=>"library_imports"}
edit_library_library_import GET /libraries/:library_id/library_imports/:id/edit(.:format) {:action=>"edit", :controller=>"library_imports"}
library_library_import GET /libraries/:library_id/library_imports/:id(.:format) {:action=>"show", :controller=>"library_imports"}
PUT /libraries/:library_id/library_imports/:id(.:format) {:action=>"update", :controller=>"library_imports"}
DELETE /libraries/:library_id/library_imports/:id(.:format) {:action=>"destroy", :controller=>"library_imports"}