module
Ruby on Rails latest stable (v7.1.3.2)
-
0 notes
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.start_with?("z") end end
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.messages # => {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.