В моем приложении у меня есть RecipesController и CommentsController. Все комментарии относятся к рецепту и могут быть поставлены на голосование. Вот фрагмент из моих маршрутов.
resources :recipes do
member do
put 'vote_up'
post 'comment'
end
resources :comments do
member do
put 'vote_up'
end
end
end
Если я запускаю рейковые маршруты, я нахожу в выводе следующий маршрут:
vote_up_recipe_comment PUT /recipes/:recipe_id/comments/:id/vote_up(.:format) {:action=>"vote_up", :controller=>"comments"}
В CommentsController есть метод под названием voice_up.
Также ссылка на маршрут работает (на мой взгляд)
<%= link_to 'Vote up', vote_up_recipe_comment_path(@recipe, comment), :method => 'put' %> <br />
Однако, нажав на эту ссылку, я получаю следующую ошибку:
Routing Error
No route matches "/recipes/7/comments/4/vote_up"
Что мне не хватает? Я не уверен, как отладить это, потому что, насколько я вижу, маршрут должен совпадать.