2012-02-06 91 views
0

我目前正在遵循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页面上显示它们。

+0

你是否已经创建了用户模型? – 2012-02-06 22:23:05

+0

@KyleMacey是的,我有 – 2012-02-06 22:56:51

回答

0

问题实际上是在我的控制器中。由于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

相关问题