这看起来相当简单。
@new_email.distributions = @email.distributions.dup
执行此操作后,两者共享相同的发行版。
但是,一旦新对象“保存”。旧的丢失了它的所有发行版。
为什么?
供参考:
分发belongs_to :email
。电邮has_many :distributions
答案 0 :(得分:3)
您对此进行建模的方式会导致问题!
每个发布只能属于一封电子邮件... email_id
属性已设置,发布不能属于两封电子邮件! (分发中只有一个email_id
属性。)
您应该使用“多对多”或“多次通过”关系来建模两个模型之间的关联,以及它们之间的连接表,以便您可以存储分发如何不仅仅属于一封电子邮件。
答案 1 :(得分:1)
尝试使用clone
代替dup
。
答案 2 :(得分:0)
因为您使用相同的对象,请尝试:some_other_var = @email.distributions.dup
如果我理解正确