The validate_associated plugin allows you to validate associated objects. It also offers the ability to delay the validation of associated objects until the current object is validated. If the associated object is invalid, validation error messages from the associated object will be added to the current object’s validation errors.
# Make all model subclass support validating associated objects Sequel::Model.plugin :validate_associated # Make the Album class support validating associated objects Album.plugin :validate_associated class Album many_to_one :artist many_to_many :tags # Always validate associated artist when saving the album def validate super if artist validate_associated_object(model.association_reflection(:artist), artist) end end # When saving after calling this method, validate the given tag as well. def check_tag!(tag) delay_validate_associated_object(model.association_reflection(:tags), tag) end end
Classes and Modules
Public Class methods
Depend on the instance_hooks plugin.
# File lib/sequel/plugins/validate_associated.rb 39 def self.apply(mod) 40 mod.plugin :instance_hooks 41 end