railsのvalidationの順番
-----------------------
before_validation
validate
after_validation
-----------------------
っていうのは有名な話だけど、validateには
---------------------------------
validates_acceptance_of
validates_associated
validates_confirmation_of
validates_each
validates_exclusion_of
validates_format_of
validates_inclusion_of
validates_length_of
validates_numericality_of
validates_presence_of
validates_size_of
validates_uniqueness_of
---------------------------------
と
自分で書く
validate :def
があるので、
ど〜ゆ〜順番でvalidateが実行されるのかな〜〜って
普通に疑問に思ったので調べてみたら、すごく単純な答えだった。
答えを先に言うと、順番は書いた順番。つまり上から順番に実行されます。
validates_***_ofも別に特別な動きをしているわけではなく
validate option do
あれこれ
end
で動いています。
validateが実行されるたびにコールバックの配列に入れられていくので
順番通りになるようです。