How to pass more than one argument to Rails validation hooks?

I don’t know how to pass many arguments to before_validation hook. I
want to implement the hook on both create and update methods:

before_validation(:on => [:create, :update]) {
// do something
}
But this form of arguments :on => [:create, :update] throws an error:

/active_support/callbacks.rb:403: syntax error, unexpected ‘[’,
expecting tSTRING_CONTENT or tSTRING_DBEG or tSTRING_DVAR or tSTRING_END
… (self.validation_context == :[:create, :update])

This one :on => :create, :update also doesn’t work:

syntax error, unexpected ‘)’, expecting tASSOC
before_validation(:on => :create, :update) {

And API has only one example with one argument:

before_validation(:on => :create) do
self.number = number.gsub(/[^0-9]/, “”) if
attribute_present?(“number”)
end

How to pass multiple arguments?

Per this:
http://guides.rubyonrails.org/active_record_validations_callbacks.html#available-callbacks

before_validation only occurs/runs on create and update

try this:
before_validation do |object_name|
#some code
end

Rafael wrote in post #1110688:

Per this:

http://guides.rubyonrails.org/active_record_validations_callbacks.html#available-callbacks

before_validation only occurs/runs on create and update

Thank you. I found an explanation. Just to pass :on => save will include
both:

class Person < ActiveRecord::Base

it will be possible to update email with a duplicated value

validates :email, :uniqueness => true, :on => :create

it will be possible to create the record with a non-numerical age

validates :age, :numericality => true, :on => :update

the default (validates on both create and update)

validates :name, :presence => true, :on => :save
end