Rails不会在关联模型上显示验证错误消息

时间:2015-05-15 19:28:04

标签: ruby-on-rails validation

我有一个简单但令人沮丧的问题,即显示帖子评论的验证错误。错误部分显示帖子的错误,但尽管验证适用于评论,但错误不会呈现。

评论表单部分插入后视图:

<%= form_for([@post, @post.comments.build]) do |f| %>
  <%= render 'shared/error_messages', object: f.object %>
  <p>
    <%= f.label :commenter %><br>
    <%= f.text_field :commenter %>
  </p>
  <p>
    <%= f.label :body %><br>
    <%= f.text_area :body %>
  </p>
  <p>
    <%= f.submit %>
  </p>
<% end %>

错误部分

<% if object.errors.any? %>
<h2>Errors:</h2>
<ul>
  <% object.errors.full_messages.each do |msg| %>
    <li><%= msg %></li>
  <% end %>  
</ul>
  

模型:

 class Post < ActiveRecord::Base
  has_many :comments, dependent: :destroy

  validates :title, :content, :presence => true
  validates :title, length: { minimum: 3 }
  validates :title, :uniqueness => true

end

class Comment < ActiveRecord::Base
  belongs_to :post

  validates :body,      presence: true
  validates :commenter, presence: true, length: { minimum: 3 }

end

我一直在寻找答案,但无法让它发挥作用。

1 个答案:

答案 0 :(得分:0)

将此行添加到Post模型

validates_associated :comments