1. ホーム
  2. ruby-on-rails

[解決済み] Ruby on Railsのコールバック、:before_saveと:before_createの違いは何ですか?

2022-04-13 09:53:10

質問

の内容を詳しく説明してください。 :before_save:before_create Ruby on Railsのコールバックとは、Railsのバリデーションとどう関係があるのでしょうか?バリデーションは :before_save または :before_create ?

解決方法は?

Railsのcreate操作では、データベース操作の前に6つのコールバックがあり、後に2つのコールバックがあります。順番に言うと、これらは

  1. before_validation
  2. before_validation_on_create
  3. after_validation
  4. after_validation_on_create
  5. before_save
  6. before_create



    データベースインサート
  7. after_create
  8. after_save

更新操作は、readを除いて全く同じセットを持っています。 update の代わりに create をあらゆる場所で使用することができます(そして アップデイト の代わりに INSERT ).

このことから、バリデーションは before_savebefore_create のコールバックがあります。

before_save の少し前に発生します。 before_create . 私の知る限りでは、この間には何も起こりません。 before_save はUpdate操作でも発火し、一方 before_create はCreatesの時のみ発生します。