ご存知のように、before_saveコールバックはコールバックの前に実行されbefore_createます。
したがって、他のコールバック(自動保存コールバックなど)に関連してコールバックメソッドが適切なタイミングで実行されるようにするbefore_save :method, :on => :create代わりに、inを使用する方がよいと提案する人もいます。before_createたとえば、このPivotalLabsのブログ投稿とこのStackOverflowの回答を参照してください。
しかし、私が知る限り、この:on => :createオプションはコールバックに対して望ましい効果を達成していませんbefore_save。つまり、作成かどうかに関係なく、保存ごとにコールバックが実行されます。
ただし、この:on => :createオプションはbefore_validationコールバックには有効であるように見えます。
誰かがのため:on => :createに働くことになっているのかどうかを確認できbefore_saveますか?以前のバージョンのRailsで機能し、現在は壊れていますか、それとも前述のリンクは単に間違っていますか?
が有効でないと仮定すると:on => :create、次のことが許容されますか、および/またはより良い方法がありますか?
before_save :callback_method, :if => :new_record?
ありがとうございました。