The validate_associated_context plugin extends the validate_associated plugin to work with the validation_contexts plugin. It ensures associated objects are validated using the validation context of the current object.
This plugin loads the validate_associated and validation_contexts plugins. The associated model must also use the validation_contexts plugin in order to access the validation context.
class Album < Sequel::Model plugin :validate_associated_context many_to_one :artist def validate super validate_associated_object(model.association_reflection(:artist), artist) if artist end end class Artist < Sequel::Model plugin :validation_contexts def validate super errors.add(:name, 'not present') if name.nil? && validation_context == :publish end end album = Album.new(artist: Artist.new) album.valid? # => true album.valid?(validation_context: :publish) # => false
Classes and Modules
Public Class methods
apply(model)
Depend on the validate_associated and validation_contexts plugins.
[show source]
# File lib/sequel/plugins/validate_associated_context.rb 36 def self.apply(model) 37 model.plugin :validate_associated 38 model.plugin :validation_contexts 39 end