我正在学习在rails中使用嵌套资源。为了保持简单和可重复性,我设置了一个非常简单的博客应用程序,其中包含两个资源posts
和comments
。大多数代码都是由脚手架生成的。
我已成功修改post#show
以在每个帖子下方显示comments
,指向Add New Comment
的链接也会呈现new comment
表单。但是我无法保存评论并收到路由错误:
ActionController :: RoutingError(没有路由匹配[POST]" / posts / 1 / comments / new"
评论部分表格的比较
原始/嵌套资源之前:
<%= form_with(model: comment, local: true) do |form| %>
修改/嵌套资源后:
<%= form_with(url: new_post_comment_path,
scope: :comment, local: true) do |form| %>
我已将代码推送到github repo,其中单独的分支master
没有嵌套资源,nestedRoutes
具有嵌套资源。将会感谢社区的帮助。
注意:Nested Resources w/ Rails 5.1 form_with的答案对我不起作用。
答案 0 :(得分:2)
当你想要你的表单进入创建路径时,看起来你传递的网址是new_post_comment_path
。根据您的路线,我认为这看起来像post_comments_path
。
这就是为什么你得到你看到的错误,没有为new
路径定义的POST方法(只有GET)。