gpt4 book ai didi

ruby-on-rails - Rails - 全局化和 Permanent_record 依赖 : :destroy callbacks

转载 作者:行者123 更新时间:2023-12-04 05:56:37 26 4
gpt4 key购买 nike

在 Rails 4.2 项目中,我使用 gem 'permanent_records' 处理记录软删除,使用 gem 'globalize' 进行翻译。

Globalize 在翻译模型和翻译模型 (source) 之间设置以下关系:

has_many :translations, :class_name  => translation_class.name,
:foreign_key => options[:foreign_key],
:dependent => :destroy,
:extend => HasManyExtensions,
:autosave => true,
:inverse_of => :globalized_model

结果是在翻译后的模型上调用 :destroy 并没有删除它(这是 permanent_records 的用途),但是我丢失了相关的翻译,我想保留它活着

我是否应该仅在某些翻译模型(我使用 permanent_records 的翻译模型)上覆盖 dependent: :destroy 回调?如何正确执行?

有没有其他方法可以得到想要的结果?

最佳答案

有很多方法可以处理它。我不建议重写 dependent: :destroy。

  1. 最好的处理方法是使用 paranoia gem,它是 acts_as_paranoid 的重新实现。这个 gem 负责使用依赖销毁选项进行软删除。引用:https://github.com/rubysherpas/paranoia

  2. 像这样覆盖回调

    def destroy
    run_callbacks :destroy do
    # your code here for destroy
    end
    end

关于ruby-on-rails - Rails - 全局化和 Permanent_record 依赖 : :destroy callbacks,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47649748/

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