class Mongoid::Validatable::AssociatedValidator
Validates whether or not an association is valid or not. Will correctly handle has one and has many associations.
@example Set up the association validations.
class Person include Mongoid::Document embeds_one :name embeds_many :addresses validates_associated :name, :addresses end
Public Instance Methods
validate_each(document, attribute, value)
click to toggle source
Validates that the associations provided are either all nil or all valid. If neither is true then the appropriate errors will be added to the parent document.
@example Validate the association.
validator.validate_each(document, :name, name)
@param [ Document
] document The document to validate. @param [ Symbol ] attribute The association to validate. @param [ Object
] value The value of the association.
@since 2.0.0
# File lib/mongoid/validatable/associated.rb, line 33 def validate_each(document, attribute, value) begin document.begin_validate valid = Array.wrap(value).collect do |doc| if doc.nil? || doc.flagged_for_destroy? true else doc.validated? ? true : doc.valid? end end.all? ensure document.exit_validate end document.errors.add(attribute, :invalid, **options) unless valid end