Class: ActiveModel::Validations::CollectionItemsValidator

Inherits:
EachValidator
  • Object
show all
Extended by:
ActiveSupport::Autoload
Defined in:
lib/active_model/validations/collection_items_validator.rb

Overview

Adds collection items validation to ActiveModel::Model.

Usage:

Examples:

class FooBar
  include ActiveModel::Model

  attr_accessor :kinds

  validates :kinds, collection_items { type: Symbol, inclusion: { in: [:foo, :bar] } }
end

Defined Under Namespace

Modules: ArrayAttributeReader Classes: ArrayAttributeGetter, InnerValidatorBuilder

Instance Method Summary collapse

Constructor Details

#initializeCollectionItemsValidator

Returns a new instance of CollectionItemsValidator.



21
22
23
# File 'lib/active_model/validations/collection_items_validator.rb', line 21

def initialize(*)
  super.tap { set_inner_validators }
end

Instance Method Details

#validate_each(record, attribute, value) ⇒ Object



25
26
27
28
29
30
31
# File 'lib/active_model/validations/collection_items_validator.rb', line 25

def validate_each(record, attribute, value)
  if value.kind_of? Enumerable
    validate_collection(record, attribute, value)
  else
    record.errors.add attribute, 'must be a collection'
  end
end