尝试调用DELETE时遇到路由错误

时间:2018-09-20 01:31:07

标签: ruby-on-rails

我在正确的路线上调用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' %>

1 个答案:

答案 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/

为什么会发生这种情况我有点困惑,但它现在像开始时一样工作。