3

保存する前にレコードに対していくつかの計算を実行する必要がある計算フィールドActiveRecord拡張機能(ActiveSupport :: Concernを拡張)を作成しています。これらの計算には、いくつかのフィールドとタイムスタンプ自体の値(created_at、updated_at)が必要になる場合があります。

ただし、すべてのbefore_saveコールバックは、タイムスタンプが書き込まれる前に実行されます。これは、タイムスタンプモジュールが作成更新をオーバーライドしてタイムスタンプを追加するためです。

レコードが保存される直前で、タイムスタンプが書き込まれた後にモデルにフックする簡単な方法を知っている人はいますか?ありがとう!

after_createは私のために仕事をしますが、それは解決策ほどきれいではありません。まず、もう一度saveを呼び出す必要があります。次に、他のgemがafter_createイベントを監視している場合、コールバックが発生する方法が原因で、計算されたフィールドの値に時間内にアクセスできない可能性があります。

4

0 に答える 0