如何显示相关模型的错误?

时间:2015-09-05 16:20:01

标签: ruby-on-rails ruby-on-rails-4 activerecord

我有articlecomment型号。

我想写这个:

= form_for ([@article, @article.comments.build]) do |f|
  - if @article.comments.errors.any?
    %h4 Errors
    %ul
      - @article.comments.errors.full_message do |message|
        %li= message

但我得到错误:

  

未定义的方法`错误'对于   注释:: ActiveRecord_Associations_CollectionProxy:0x9a4a020

Article有很多评论,comment属于文章。

我想为评论显示验证错误。

编辑: 我的comment型号:

class Comment < ActiveRecord::Base
  belongs_to :article
  validates :author, presence: true, length: { minimum: 3 }
  validates :body, presence: true, length: { minimum: 5 }
end

1 个答案:

答案 0 :(得分:1)

您无法在def new @comment = @article.comments.build end def create @comment = @article.comments.build respond_to do |format| if @comment.save # handle save else format.html { render :new } format.json { render json: @comment.errors, status: :unprocessable_entity } end end end 等集合上调用错误。

在您的控制器中,为注释创建一个实例变量:

= form_for ([@article, @comment]) do |f|
  - if @comment.errors.any?
    %h4 Errors
    %ul
      - @comment.errors.full_message do |message|
        %li= message

然后更新您的表单:

window.location.href