如何在创建提交后编写rails活动记录回调类

xmjla07d  于 2021-09-29  发布在  Java
关注(0)|答案(1)|浏览(393)

我想使用类回调来重用差异模型的回调,我写道 after_create_commit 方法,但当我在模型中使用它时,模型将被保存,它将生成

  1. undefined method `after_commit`

例如:
回调类

  1. class TrackingRecord
  2. def after_create_commit(record)
  3. // do thing
  4. end
  5. def after_update_commit(record)
  6. // do thing
  7. end
  8. end

模型

  1. class SomeModel < ApplicationRecord
  2. after_create_commit TrackingRecord.new
  3. after_update_commit TrackingRecord.new
  4. // other stuff
  5. end

在类中创建/更新提交回调后如何编写?或者如果我必须定义 after_commit 我如何区分哪些是创建的,哪些是更新的?
非常感谢。

uklbhaso

uklbhaso1#

rails的 after_commit 在创建、更新或销毁记录后调用。
对于每种情况,您都可以使用 after_create , after_update , after_destroy 回调或使用 on 选择 after_commit .

  1. class SomeModel < ApplicationRecord
  2. # after_create, after_update
  3. after_create :do_after_create
  4. after_update :do_after_update
  5. # OR using on option
  6. after_commit :do_after_create, on: :create
  7. after_commit :do_after_update, on: :update
  8. def do_after_create
  9. # Using your class
  10. TrackingRecord.new.after_create_commit(self)
  11. # or do something here
  12. end
  13. def do_after_update
  14. # Using your class
  15. TrackingRecord.new.after_update_commit(self)
  16. # or do something here
  17. end
  18. end

希望能有帮助:d

展开查看全部

相关问题