如何将数组复制到另一个对象?

时间:2011-10-26 18:10:21

标签: ruby-on-rails arrays duplication

这看起来相当简单。

@new_email.distributions = @email.distributions.dup

执行此操作后,两者共享相同的发行版。

但是,一旦新对象“保存”。旧的丢失了它的所有发行版。

为什么?

供参考:

分发belongs_to :email。电邮has_many :distributions

3 个答案:

答案 0 :(得分:3)

您对此进行建模的方式会导致问题!

每个发布只能属于一封电子邮件... email_id属性已设置,发布不能属于两封电子邮件! (分发中只有一个email_id属性。)

您应该使用“多对多”或“多次通过”关系来建模两个模型之间的关联,以及它们之间的连接表,以便您可以存储分发如何不仅仅属于一封电子邮件。

答案 1 :(得分:1)

尝试使用clone代替dup

答案 2 :(得分:0)

因为您使用相同的对象,请尝试:some_other_var = @email.distributions.dup如果我理解正确