在Rails 4.2项目中,我使用gem 'permanent_records'处理记录、软删除和翻译的gem 'globalize'。
全球化设置了翻译模型和翻译模型(来源)之间的下列关系:
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回调?如何做好呢?
还有其他方法可以得到预期的结果吗?
发布于 2017-12-05 11:03:22
最后,我通过向deleted_at模型(在我的例子中是Treatment::Translation)添加一个GlobalizedModel::Translation属性来解决这个问题,这样也可以软删除翻译。
发布于 2017-12-05 09:34:40
处理这件事的方法很多。我不建议覆盖依赖::破坏。
https://stackoverflow.com/questions/47649748
复制相似问题