如何为属于另一个模型rails 3.1的模型添加表单错误

时间:2012-04-18 07:03:48

标签: ruby-on-rails-3.1

我正在关注Rails Guides - Getting Started教程。它创建了一个基本的Post模型和一个属于Post的评论模型。

我在Comment模型中添加了一个简单的验证,它可以正常工作,但如果填写错误,我无法弄清楚如何显示表单错误。

这是我的评论.rb模型

class Comment < ActiveRecord::Base
  validates :body, presence: true
  belongs_to :post
end

以下是添加评论的原始表单,它位于posts / show.html.erb

<h2>Add a comment:</h2>
<%= 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 %>

在comments_controller.rb

中创建原始动作
class CommentsController < ApplicationController
  def create
    @post = Post.find(params[:post_id])
    @comment = @post.comments.create(params[:comment])
    redirect_to post_path(@post)
  end
end

我已经尝试了很多东西,但这一切都感觉就像在黑暗中摸索一样。有人能指出我正确的方向吗?

1 个答案:

答案 0 :(得分:1)

看看dynamic_form gem - 这曾经是铁路本身的一部分但是被提取了一段时间。有了它,您可以像这样显示内联错误:

<%= f.label :commenter %><br />
<%= f.text_field :commenter %>
<%= f.error_message_on :commenter %>