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