Ruby on Rails Callback, какая разница между: before_save и: before_create?

Не могли бы вы подробно объяснить, что такое обратные вызовы :before_save и :before_create Ruby on Rails, и что они должны делать с проверкой Rails? Выполняется ли проверка после :before_save или :before_create?

Ответ 1

В операции создания под Rails перед операцией базы данных есть шесть обратных вызовов и два после. В порядке:

  • before_validation
  • before_validation_on_create
  • after_validation
  • after_validation_on_create
  • before_save
  • before_create

    ВСТАВКА БАЗА ДАННЫХ
  • after_create
  • after_save

Операции обновления имеют точно такой же набор, за исключением read update вместо create всюду (и UPDATE вместо INSERT).

Из этого вы можете видеть, что проверка выполняется перед обратными вызовами before_save и before_create.

before_save происходит немного раньше before_create. Насколько мне известно, между ними ничего не происходит; но before_save также запускает операции обновления, а before_create будет запускаться только при создании.

Ответ 2

before_save вызывается каждый раз, когда объект сохраняется. Итак, для новых и существующих объектов. (создать и обновить действие)

before_create только до создания. Так что только для новых объектов (создать действие)