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