1

我正在关注Rails Guides - Getting Started教程。它创建了一个基本的 Post 模型,以及一个属于 Post 的 Comment 模型。

我已经向 Comment 模型添加了一个简单的验证,它可以工作,但是如果我填写错误,我无法弄清楚如何让表单错误显示出来。

这是我的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

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

4

1 回答 1

1

看一下dynamic_form gem - 这曾经是 Rail 本身的一部分,但不久前被提取了。有了它,您可以像这样内联显示错误:

<%= f.label :commenter %><br />
<%= f.text_field :commenter %>
<%= f.error_message_on :commenter %>
于 2012-04-18T07:45:28.723 回答