gpt4 book ai didi

ruby-on-rails - 我如何判断 ActiveRecord 对象是否会在实际销毁之前被销毁?

转载 作者:太空宇宙 更新时间:2023-11-03 16:23:03 25 4
gpt4 key购买 nike

每当我创建、更新或销毁模型时,我都需要向前端应用程序发送通知。发送消息时,我需要知道该记录是新创建的记录还是该记录已被删除。为了避免重复,我更愿意在单个 ActiveRecord 生命周期 Hook (即 before_save、after_save、after_commit 等)中处理所有这些。

我的问题似乎是在 before_save 回调中,destroyed? 在我销毁对象时将返回 false,但如果我使用 after_commit 然后 new_record? 将返回 false,即使我刚刚创建了对象。

有什么方法可以可靠地识别:

  1. 如果记录已经或将被销毁

  1. 如果记录是或曾经是新记录

在对象生命周期的一个点上?

最佳答案

使用after_commit:

after_commit :new_record, on: :create
after_commit :update_record, on: :update
after_commit :destroy_record, on: destroy

private
def new_record
# Send or build message here.
end
def update_record
# Send or build message here.
end
def destroy_record
# Send or build message here.
end

关于ruby-on-rails - 我如何判断 ActiveRecord 对象是否会在实际销毁之前被销毁?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30656352/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com