Rails メモ
インスタンスをsaveすると、 https://github.com/rails/rails/blob/master/activerecord/lib/active_record/validations.rb#L58
で context がActiveModelのvalid? に渡る https://github.com/rails/rails/blob/master/activemodel/lib/active_model/validations.rb#L332
valid? では、
- 渡ってきた context を self.validation_context にアサインする
- run_validations! を実行する
run_validations! では、
- run_callbacks :validate を実行する
https://github.com/rails/rails/blob/master/activesupport/lib/active_support/callbacks.rb#L82 に飛ぶ
run_callbacks では、
- callbacks = send("#{kind}callbacks") を実行する kind は :validate
set_callback https://github.com/rails/rails/blob/master/activesupport/lib/active_support/callbacks.rb#L672