What's the difference between “validate” and “validates”?

前端 未结 2 845
天涯浪人
天涯浪人 2020-12-08 12:53

I added a validation to an objects using:

validate :field, presence: true

I found they do not give error messages. I changed them to

2条回答
  •  不知归路
    2020-12-08 13:33

    validates This method is a shortcut to all default validators and any custom validator classes ending in ‘Validator’. Note that Rails default validators can be overridden inside specific classes by creating custom validator classes in their place such as PresenceValidator.

    validates :title, :body, :presence => true
    

    validate, Adds a validation method or block to the class. This is useful when overriding the validate instance method becomes too unwieldy and you’re looking for more descriptive declaration of your validations.

    validate :must_be_friends
    
      def must_be_friends
        errors.add(:base, 'Must be friends to leave a comment') unless commenter.friend_of?(commentee)
      end
    

提交回复
热议问题