显示另一个控制器页面内的错误消息
问题描述:
我目前正在遵循Rails入门指南,包括使用发布和评论模型创建博客。在后期展示方法中,有一种形式可以创建新评论。像这样。显示另一个控制器页面内的错误消息
<%= 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 %>
但是,我想禁止用户发布一个以上的评论,在一个特定的职位。我会如何去做这件事?我一直在使用验证器,但似乎无法围绕添加错误并在帖子#show页面上显示它们。
答
问题实际上是在我的控制器中。由于submissions
是嵌套资源posts
,因此如果出现错误,我需要在调用render 'posts/show'
之前重新设置@post
。这是有效的,但是你会注意到,你最终会得到一个URL,例如/posts/4/submissions/
和相应的网页,而不是/posts/4
+1
URL是你可以通过路线按摩的东西。默认情况下,它会尽量保持安静,特别是对于嵌套模型。你可以设置一个路由,比如:match“posts /:id”=>“controllerHere#actionHere”,:as =>“some_custom_name_so_no_confusion”,然后确保将它放在路由中的'resources:posts'之前文件 – MunkiPhD 2012-02-16 02:51:21
你是否已经创建了用户模型? – 2012-02-06 22:23:05
@KyleMacey是的,我有 – 2012-02-06 22:56:51