如何将多个参数传递给Rails中的嵌套路径路径?

时间:2014-08-12 16:15:20

标签: ruby-on-rails path routes link-to

我是Rails的新手,通常会为正常的unnested路线设置一个link_to帮助器,如下所示:

link_to "Delete", article_path(article.id), method: :delete, data: {confirm: "Are you sure?"}

但是我正在学习嵌套路由,似乎我需要提供带有两个参数的路径,例如:

link_to "(Delete)", article_comments_path(comment.article_id, comment.id), method: :delete, data:{comfirm: 'Are you sure?'}

然而,这似乎不起作用。我已经看到你可以像这样格式化link_to

link_to 'Destroy Comment', [comment.article, comment], method: :delete, data: { confirm: 'Are you sure?' }

但这似乎让我感到困惑,因为没有定义路径,路径所需的值也没有直接指定。

是否可以格式化嵌套的link_to路径,如上面的unnested路径,还是需要格式化,如第三个示例所示?如果是这样,有人可以尝试解释如何将此数组格式转换为Rails执行的URL吗?

由于

路线:

article_comment_path - DELETE - /articles/:article_id/comments/:id(.:format) - comments#destroy

1 个答案:

答案 0 :(得分:5)

我认为您的路线类似于articles/:article_id/comments/:id,所以您可以这样做:

<%= link_to "Delete", article_comments_path(article_id: comment.article_id, id: comment.id), method: :delete, data:{comfirm: 'Are you sure?'} %>

你的第3个链接应该是

<%= link_to 'Destroy Comment', polymorphic_path(comment.article, comment), method: :delete, data: { confirm: 'Are you sure?' } %>

有关详情,请查看Polymorphic routes

<强>更新

你只需要将本地人传递给你的部分:

<%= render "comment", locals: {article: comment.article, comment: comment} %>

然后使用

<%= link_to "Delete", article_comments_path(article.id,comment.id), method: :delete, data:{comfirm: 'Are you sure?'}%>