Rails自定义验证方法:“ArgumentError(您需要提供至少一个验证)”

时间:2018-01-31 21:04:06

标签: ruby-on-rails ruby

我尝试对注释方法进行自定义验证,该方法将验证是否存在注释ID,那么它必须存在。

class Comment < ActiveRecord::Base
  belongs_to :article
  #Many to one relation with itself (1 comment can have one parent and multiple child)
  has_many :child, class_name: "Comment", foreign_key: "parent_id"
  belongs_to :parent, class_name: "Comment", optional: true

  belongs_to :user, optional: true

  validates :comment, presence: true, length: { minimum: 10 }
  validates :first_name, presence: true, length: { minimum: 2, maximum: 30 }
  validates :last_name, length: { minimum: 2, maximum: 30 }
  validates :comment_id_presence

  private

  def comment_id_presence
    if comment_id != nil && !Comment.exists?(comment_id)
      errors.add(:comment_id, "Le parent doit exister ou être nulle")
    end
  end
end

但是,我收到以下错误:ArgumentError(您需要提供至少一个验证)。我想知道我的错误是什么,或者是否有更简单的方法来做我想做的事。

1 个答案:

答案 0 :(得分:1)

对于这种情况,您应该只使用validate而不是s

validate :comment_id_presence

更多here