Ruby on rails 显示另一个控制器内部的错误消息';s页
我目前正在遵循Rails入门指南,包括创建包含帖子和评论模型的博客。在post show方法中,有一个用于创建新注释的表单。像这样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 %> </
<%= 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”行之前