2 つの異なるフィールドについて、モデルで 2 つの異なる計算を行う必要があります。保存前。
Class Event < ActiveRecord::Base
#some relations
before_save :method1, unless: :some_field_1?
before_save :method2, unless: :some_field_2?
def method1
some_field_1 = some_other_field / 2
end
def method2
some_field_2 = some_field_1 / 3
end
end
私が抱えている問題は、method2 が呼び出されたときに some_field_1 が null であることです。私の推測では、私がやっているように before_save コールバックを宣言するのは間違っていると思います。
- 2 番目の before_save は最初の before_save を上書きしますか?
- コールバックは宣言された順序で実行されますか?
条件と問題解決なしで 2 つのメソッドを 1 つにラップできることはわかっていますが、条件付きコールバックを使用したいと思います。そして、正しい方法を知りたいです。ドキュメントはこれについてかなり明確ではありません。
どうもありがとう!
編集
今後の参考のために。コードはOKでした。問題は別の場所 (DB) にありました!