У меня в route.rb есть
resources :clients_assessments do
member do
get :medical_edit
get :mental_health_edit
get :personal_edit
end
collection do
end
end
Что дает маршруты
medical_edit_clients_assessment GET /clients_assessments/:id/medical_edit(.:format) {:action=>"medical_edit", :controller=>"clients_assessments"}
mental_health_edit_clients_assessment GET /clients_assessments/:id/mental_health_edit(.:format) {:action=>"mental_health_edit", :controller=>"clients_assessments"}
personal_edit_clients_assessment GET /clients_assessments/:id/personal_edit(.:format) {:action=>"personal_edit", :controller=>"clients_assessments"}
clients_assessments GET /clients_assessments(.:format) {:action=>"index", :controller=>"clients_assessments"}
POST /clients_assessments(.:format) {:action=>"create", :controller=>"clients_assessments"}
new_clients_assessment GET /clients_assessments/new(.:format) {:action=>"new", :controller=>"clients_assessments"}
edit_clients_assessment GET /clients_assessments/:id/edit(.:format) {:action=>"edit", :controller=>"clients_assessments"}
clients_assessment GET /clients_assessments/:id(.:format) {:action=>"show", :controller=>"clients_assessments"}
PUT /clients_assessments/:id(.:format) {:action=>"update", :controller=>"clients_assessments"}
DELETE /clients_assessments/:id(.:format) {:action=>"destroy", :controller=>"clients_assessments"}
Когда я пытаюсь использовать их во вспомогательном файле, например
route = medical_edit_clients_assessment_path(id)
Генерируется сообщение об ошибке
No route matches {:action=>"medical_edit", :controller=>"clients_assessments"}
я должен изменить его на
route = "/clients_assessment/#{able_id}/medical_edit"
чтобы обойти сообщение об ошибке. Что смешного в том, что маршрут, как
route = (able_id.nil? ? new_client_path : edit_client_path(able_id))
работает просто отлично.
Я знаю, что кто-то попросит об этом, так что вот весь route.rb и результат рейк-маршрутов
https://gist.github.com/3074287
Спасибо, Расс
params[]
Hash! - person davidb   schedule 09.07.2012