Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/66.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 显示另一个控制器内部的错误消息';s页_Ruby On Rails - Fatal编程技术网

Ruby on rails 显示另一个控制器内部的错误消息';s页

Ruby on rails 显示另一个控制器内部的错误消息';s页,ruby-on-rails,Ruby On Rails,我目前正在遵循Rails入门指南,包括创建包含帖子和评论模型的博客。在post show方法中,有一个用于创建新注释的表单。像这样 <%= form_for([@post, @post.comments.build]) do |f| %> <div class="field"> <%= f.label :commenter %><br /> <%= f.text_field :commenter %> </

我目前正在遵循Rails入门指南,包括创建包含帖子和评论模型的博客。在post show方法中,有一个用于创建新注释的表单。像这样

<%= form_for([@post, @post.comments.build]) do |f| %>
  <div class="field">
    <%= f.label :commenter %><br />
    <%= f.text_field :commenter %>
  </div>
  <div class="field">
    <%= f.label :body %><br />
    <%= f.text_area :body %>
  </div>
  <div class="actions">
    <%= f.submit %>
  </div>
<% end %>




但是,我想禁止用户在某个帖子上发表多条评论。我该怎么做呢?我一直在使用验证器,但我似乎无法集中精力添加错误并将其显示在POST#show页面上

问题实际上在我的控制器中。由于
submissions
posts
的嵌套资源,因此如果出现错误,我需要在调用
render'posts/show'
之前重新设置
@post
。这是可行的,但是你会注意到,你最终会出现一个URL,比如带有适当网页的
/posts/4/submissions/
,而不是
/posts/4

你已经建立了一个用户模型了吗?URL是你可以通过路径进行按摩的东西。默认情况下,它将尝试保持restful,特别是对于嵌套模型。您可能会设置一个路由,例如:match“posts/:id”=>“controllerHere#actionHere”,:as=>“some_custom_name_so_no_mission”,然后确保将其放在路由文件中的“resources:posts”行之前