我在正确的路线上调用DELETE
查询时遇到了问题
这是我要查询DELETE
post_comment DELETE (/:locale)/*category/posts/:post_id/comments/:id(.:format)
这是应该在正确的路线上触发DELETE
的链接:
<%= link_to image_tag("bin_icon.png",:size => "65x35"),
post_comment_path(id: comment.id,
post_id: comment.post_id,
category: comment.category),
method: 'delete',
class: 'edit-links' %>
它位于名为app/views/comments/_comment.html.erb
的部分app/views/comments/index.html.erb
我得到的错误是一个简单的路由错误:
No route matches [DELETE] "/de/general/announcements/posts/21/comments"
我也尝试过的操作:
<%= link_to image_tag("bin_icon.png",:size => "65x35"),
comment,
method: 'delete',
class: 'edit-links' %>
因为他是我的用户视图中适用的内容:
<%= link_to t('delete'),
user,
method: :delete,
class: 'delete-button' %>
答案 0 :(得分:0)
我现在可以正常工作了
这是您的处理方式:例如,所有url参数均以正确的顺序排列:
post_comment_path(comment.category, @post, comment)
或者我的情况也是如此:
post_comment_path(category: comment.category, id: comment.id)
尽管我不明白为什么我手动将:post_id
参数传递给助手的第一种方法没有为我带来正确的途径。
这只是将注释id
的{{1}}设置为21
而不是/:post_id/
,并将/:id
设置为网址末尾的nil这条路线:
/:id
这条路线的结果:
post_comment DELETE (/:locale)/*category/posts/:post_id/comments/:id(.:format)
而不是例如:
/posts/21/comments/
为什么会发生这种情况我有点困惑,但它现在像开始时一样工作。