gpt4 book ai didi

ruby - 在 rails 中创建对象及其所有关联模型的副本

转载 作者:数据小太阳 更新时间:2023-10-29 07:17:49 26 4
gpt4 key购买 nike

我正致力于在 Rails 及其所有相关关联模型中创建一个对象的副本。但我无法找到解决方案。我不想使用像 Amoeba 这样的 gem。模型之间的关系是这样的。

class ClassToCopy
has_many :cups
has_many :cup_parts, through :cups
belongs_to :xyz
end

所以我想保留一个像 copy ClassToCopy 这样的按钮,单击它应该会创建该对象的一个​​新副本以及所有关联。就像如果 ClassToCopy 的对象有 10 个杯子和 4 个 cup_parts,那么也应该创建这些类的相应对象。我已经尝试使用 clonedup(使用 rails 3.2.x),但是 clone 不会从原始对象创建新对象并且 dup 不允许关联.因此,我很困惑该怎么做。

最佳答案

您可以覆盖 dup 以返回一个新对象和每个关联的新对象,例如:

class Thing
has_many :cups

def dup
super.tap do |new_thing|
self.cups.each do |cup|
new_thing.cups << cup.dup
end
end
end
end

关于ruby - 在 rails 中创建对象及其所有关联模型的副本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17832077/

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