Method: ActiveModel::Validations::Callbacks::ClassMethods#before_validation

Defined in:
activemodel/lib/active_model/validations/callbacks.rb

#before_validation(*args, &block) ⇒ Object

Defines a callback that will get called right before validation.

class Person
  include ActiveModel::Validations
  include ActiveModel::Validations::Callbacks

  attr_accessor :name

  validates_length_of :name, maximum: 6

  before_validation :remove_whitespaces

  private
    def remove_whitespaces
      name.strip!
    end
end

person = Person.new
person.name = '  bob  '
person.valid? # => true
person.name   # => "bob"


55
56
57
58
59
60
61
# File 'activemodel/lib/active_model/validations/callbacks.rb', line 55

def before_validation(*args, &block)
  options = args.extract_options!

  set_options_for_callback(options)

  set_callback(:validation, :before, *args, options, &block)
end