gpt4 book ai didi

ruby-on-rails - Rails - 检查父对象是否被销毁并调用 destroy on dependents

转载 作者:行者123 更新时间:2023-12-02 00:21:03 24 4
gpt4 key购买 nike

我有以下内容:

class ModelA < ApplicationRecord
has_many :model_bs, dependent: :destroy
end

class ModelB < ApplicationRecord
belongs_to :model_a
after_destroy :action_only_if_model_a_exists

private

def action_only_if_model_a_exists
# Do things
end
end

当我调用 model_a.destroy 时,我需要能够在 ModelB 的 action_only_if_model_a_exists 回调中确定关联的 ModelA 是否仍然存在或是否也即将被销毁.

是否有一个很好的内置 Rails 方法来执行此操作,或者我是否需要在较早的回调(例如 before_destroy)中沿着在 ModelA 中设置标志的路径进行下去,然后我可以检查 ModelB 的回调?

编辑

我已经进行了多次测试并确认在 action_only_if_model_a_exists 回调中,执行以下操作没有帮助:

> model_a.persisted?
true

> model_a.destroyed?
false

> model_a.frozen?
false

最佳答案

您可以在子对象中使用 destroyed_by_association 属性来查看对象是否作为 dependent::destroy 的一部分从其父对象中销毁。

关于ruby-on-rails - Rails - 检查父对象是否被销毁并调用 destroy on dependents,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55369777/

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