Ruby on rails 无法删除属于其他资源的资源
我有这样组织的资源:Ruby on rails 无法删除属于其他资源的资源,ruby-on-rails,path,resources,Ruby On Rails,Path,Resources,我有这样组织的资源: resources :tickets do resources :comments end 当我尝试使用此类链接从票证中删除评论(它们都列在其中)时: | 我有一个错误: 没有路由匹配{:action=>“show”,:controller=>“comments”,:id=>“5”}缺少必需的键:[:ticket\u id] 正如我所想,对于这个ticket\u comment\u路径(c)id应该是一个注释的id,应该填充ticket\u id 但不知
resources :tickets do
resources :comments
end
当我尝试使用此类链接从票证中删除评论(它们都列在其中)时:
|
我有一个错误:
没有路由匹配{:action=>“show”,:controller=>“comments”,:id=>“5”}缺少必需的键:[:ticket\u id]
正如我所想,对于这个ticket\u comment\u路径(c)id应该是一个注释的id,应该填充ticket\u id
但不知何故,my:id是一个票证id,而:ticket\u id是空的…尝试
票证注释\u路径(@ticket,c)
-嵌套资源需要两个id都正确。您可以通过运行rake routes | grep comment
查看路由,您将看到类似DELETE/tickets/:ticket\u id/comments/:id
的内容。当您使用嵌套资源时,url将如下所示
/tickets/:ticket_id/comments/:id
<%= link_to "Delete", ticket_comment_path(@ticket.id, c), method: :delete, data: {confirm: "Are you sure?"} %>
因此,要删除注释,您需要传递两个参数ticker\u id
和comment\u id
。您的delete链接到
应该如下所示
/tickets/:ticket_id/comments/:id
<%= link_to "Delete", ticket_comment_path(@ticket.id, c), method: :delete, data: {confirm: "Are you sure?"} %>
来源:Tryticket\u comment\u路径(@ticket,c)