Active Model Validations

Provides a full validation framework to your objects.

A minimal implementation could be:

  class Person
    include ActiveModel::Validations

    attr_accessor :first_name, :last_name

    validates_each :first_name, :last_name do |record, attr, value|
      record.errors.add attr, 'starts with z.' if value.to_s[0] == ?z

Which provides you with the full standard validation stack that you know from Active Record:

  person = Person.new
  person.valid?                   # => true
  person.invalid?                 # => false

  person.first_name = 'zoolander'
  person.valid?                   # => false
  person.invalid?                 # => true
  person.errors                   # => #<OrderedHash {:first_name=>["starts with z."]}>

Note that ActiveModel::Validations automatically adds an errors method to your instances initialized with a new ActiveModel::Errors object, so there is no need for you to do this manually.


  • send
Show files where this module is defined (12 files)
Register or log in to add new notes.