Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/59.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails ActionController::UrlGenerationError在估价中#新建_Ruby On Rails_Ruby_Model View Controller_Partials_Actioncontroller - Fatal编程技术网

Ruby on rails ActionController::UrlGenerationError在估价中#新建

Ruby on rails ActionController::UrlGenerationError在估价中#新建,ruby-on-rails,ruby,model-view-controller,partials,actioncontroller,Ruby On Rails,Ruby,Model View Controller,Partials,Actioncontroller,我读过其他有关UrlGenerationError的SO文章,这些文章似乎指向单词的单数化或复数化,但我认为这不是这里的问题 当我从valuations/_form.html.erb中删除时,它会起作用: <%= render "comments/comments" %> <%= render "comments/form" %> 然后刷新。零的时候怎么办 路线 resources:估值不起作用 资源:评论 结束当您有这样的嵌套资源时,创建注释的url看起来像/valu

我读过其他有关
UrlGenerationError
的SO文章,这些文章似乎指向单词的单数化或复数化,但我认为这不是这里的问题

当我从valuations/_form.html.erb中删除时,它会起作用:

<%= render "comments/comments" %>
<%= render "comments/form" %>
然后刷新。零的时候怎么办

路线
resources:估值不起作用
资源:评论

结束
当您有这样的嵌套资源时,创建注释的url看起来像
/valuations/123/comments
,其中123是估价的id-如果没有估价id,则无法生成此url

在您的估价#新建页面上,估价(即
@commentable
)是一个未保存的对象,因此它还没有id,因此出现了缺少
估价(id
)的错误。此外,将一个表单嵌套在另一个表单中是无效的html,会导致奇怪的行为。另一方面,在你的展示页面上,估价确实有一个id,因此事情应该按原样进行


如果您想一次性创建估价及其初始注释,那么您应该使用并将注释字段添加到估价表单中(还有其他方法,但
接受
是rails内置的属性)

您的实际错误统计信息,即估价id参数为零。你需要将其包括在内,以便它知道评论的价值。Hola@patrick!我在哪里/如何包括这些?在此之前,你能解释一下这是如何发生的吗?比如,用户的步骤是什么。他们正在尝试向估价中添加注释吗?有一件事(不相关)是您的
@valuation=valuation.find(params[:id])
中的
显示
操作在
valuations\u controller.rb
中是多余的,因为您调用before\u操作来设置实例变量。这是因为
@commentable
为零。您已将其设置为
@valuation
,该值也必须为零。使用
@commentable
实例变量的目的是什么?这是一个教程还是你正在关注的东西?错误消失了,但当我点击“添加评论”时,什么都没有显示。我是否需要将
\u comments\u fields.html.erb
\u form\u fields.html.erb
添加到comments文件夹或valuations文件夹?为了安全起见,我做了这两件事。我还将使用多态注释对我的其他控制器视图执行此操作,因此,如果字段位于每个相应的视图中,这不是会有很多重复吗?非常感谢你的帮助弗雷德里克@Anthony您应该能够像共享其他字段一样共享注释字段。最好打开一个新问题来讨论“添加评论”问题好主意弗雷德里克。这是第二轮。我非常感谢你的帮助
<%= render "comments/comments" %>
<%= render "comments/form" %>