レコードの作成時にafter_commitのモデルの変更を追跡する方法はありますか?私はダーティモジュールを使ってみましたが、レコードが更新されたときに変更を追跡することができましたが、レコードが作成されると変更は記録されません。after_commitのトラッキングモデルの変更:on =>:コールバックの作成
17
A
答えて
45
レールを使用することはできませんchanged?
メソッドは常にfalseを返します。トランザクションがコミットされた後の変更を追跡するには、previous_changes
メソッドを使用します。これは属性nameをキーとしてハッシュを返します。 attribute_nameがハッシュに含まれているかどうかを確認することができます。
after_commit :foo
def foo
if previous_changes[attribute_name]
#do your task
end
end
+4
ありがとう!ハッシュにあなたの属性が含まれているかどうかを調べるには、次のようなことができます。if @ item.previous_changes.has_key?( 'attribute_name') ' –
関連する問題
- 1. Rails 3:オブザーバーでafter_commitアクションを特定する方法は? (作成/更新/破棄)
- 2. after_commitコールバックが複数回呼び出されています
- 3. IP変更のNSNetServiceコールバック?
- 4. 、検証し、変更のコールバック
- 5. onコンテンツプロバイダーの作成
- 6. Django:リクエストオブジェクトの作成/変更
- 7. Ruby on Rails、メソッドの作成
- 8. TimerコールバックでのMapIconの作成
- 9. 作成されたユーザーの作成方法、作成日、変更されたユーザー、テーブルの変更日
- 10. Qt guiの作成、ウィジェットのサイズ変更
- 11. 作成後のデータベース設計の変更
- 12. 変更されたActiveRecord属性のコールバック?
- 13. 方向変更時のDialogFragmentコールバック
- 14. サルパッチによるPythonコールバックの作成
- 15. はなぜafter_commitはRSpecの中に偽
- 16. 変更Herokuの領域が作成
- 17. 作成後にサイズ変更のuiviewサブクラス
- 18. SSRS 2008 R2ロールの作成/変更
- 19. Drupal 6 - 変更ノードの作成者
- 20. パスワード変更フォームの作成方法は?
- 21. 角度変更クラスon $ dirty
- 22. Rails、コールバックを作成する
- 23. jQuery for force triggering on selectドロップダウンの変更
- 24. 特定のIDにjquery .on(変更)
- 25. Android on clickテキストボックスのテキストを変更
- 26. Java:JFormattedTextFieldの変更setGroupingUsed()on focusLost&focusGained
- 27. Handle Entity Framework On POCOの作成
- 28. Ruby on Railsのテキストフィールドを作成する
- 29. ASIHTTPREQUEST変更ビューコントローラon requestFinished
- 30. フォントサイズの変更 - > pandoc
何かが作成されているだけでどのような変更がありますか? –
nilから有効な値になるフィールド。 –