這看起來相當簡單。如何將數組複製到另一個對象?
@new_email.distributions = @email.distributions.dup
執行此操作後,兩者共享相同的分佈。
但是,一旦新對象「保存」。舊的失去了它的所有分配。
這是爲什麼?
FYI:
分佈belongs_to :email
。電子郵件has_many :distributions
這看起來相當簡單。如何將數組複製到另一個對象?
@new_email.distributions = @email.distributions.dup
執行此操作後,兩者共享相同的分佈。
但是,一旦新對象「保存」。舊的失去了它的所有分配。
這是爲什麼?
FYI:
分佈belongs_to :email
。電子郵件has_many :distributions
你模擬這種導致該問題的方式瞭解你!
每個分配只能屬於一個電子郵件... email_id
屬性已設置,並且一個分配不能屬於兩個電子郵件! (分發中只有一個email_id
屬性)。
您應該使用「多對多」或「多對多」關係對兩個模型之間的關聯以及它們之間的連接表建模,以便您可以存儲分佈屬於的方式不僅僅是一封電子郵件。
因爲你使用同一個對象,嘗試:some_other_var = @email.distributions.dup
如果我正確
這是一個不同的對象。 '@email = Email.find(params [:id]) @new_email = @ email.clone @ new_email.distributions = @ email.distributions.dup' – Trip
嘗試使用clone
而不是dup
。
輝煌!沒有想到明顯的!非常感謝!! – Trip