2012-03-16 95 views
0

我定义了一个轨道3嵌套的资源如下发行名为路线嵌套资源

resources :candidates do 
    collection do 
    get :bookmarked 
    end 
    resources :bookmarks, :only => [:create, :destroy] 
end 

的candidats集合中的书签行动将为候选新书签。这可以正常工作。

当我尝试删除书签时出现问题。

我有我的候选显示页面的链接如下

<%= link_to "Remove bookmark", candidate_bookmarks_path(@candidate, @bookmark), :method => :delete %> 

当我点击这个链接,我得到以下错误

No route matches "/candidates/1/bookmarks.8" 

我期待的网址是/人选上/ 1 /书签/ 8不是在错误中打印的内容。我也希望将请求引导至书签控制器销毁方法。但显然这没有发生。

有人可以告诉我我做错了什么。任何帮助赞赏。

回答

2

销毁行为的路径应该是candidate_bookmark_path(@candidate, @bookmark)而不是candidate_bookmarks_path(@candidate, @bookmark)

请记住,您正在删除特定候选人的特定书签,因此资源在您的路径中应该是单数,并且您需要为每个资源传递特定的对象。