我有一个rails 3嵌套资源,定义如下
resources :candidates do
collection do
get :bookmarked
end
resources :bookmarks, :only => [:create, :destroy]
end
候选人收藏中的书签操作将为候选人创建一个新书签。这可以正常工作。
当我尝试删除书签时出现问题。
我的候选人节目页面中有一个链接如下
<%= link_to "Remove bookmark", candidate_bookmarks_path(@candidate, @bookmark), :method => :delete %>
当我点击此链接时,我收到以下错误
No route matches "/candidates/1/bookmarks.8"
我希望网址是/ candidate / 1 / bookmarks / 8而不是错误中打印的内容。我还期望将请求定向到书签控制器销毁方法。但显然这种情况并没有发生。
有人可以告诉我我做错了什么。任何帮助表示赞赏。
答案 0 :(得分:2)
销毁操作的路径应为candidate_bookmark_path(@candidate, @bookmark)
而不是candidate_bookmarks_path(@candidate, @bookmark)
。
请记住,您正在删除特定候选人的特定书签,因此您的路径中的资源应该是单数,并且您需要为每个资源传递特定对象。