2010-11-29 30 views

回答

3

這個過程被稱爲克隆一個對象和它的複雜性取決於你想克隆什麼樣的信息。

如果你只是想克隆一個對象的字段,你會做這樣的事情:

old_object = A.find(old_object_id) 
new_object = B.new 

new_object.field_one = old_object.field_one 
new_object.field_two = old_object.field_two 
new_object.save! 

但是,如果你也想複製老對象的協會,你需要做的用手。

地說論據Ahas_many協會B對象叫bees的緣故,並呼籲seesBhas_manyC對象,這有可能會稍微複雜一些:

old_object.bees.each do |bee| 
    new_bee = bee.clone 
    new_bee.sees.each do |see| 
     new_see = see.clone 
     new_see.save! 
    end 
    new_object.bees.push(new_bee) 
end 
new_object.save!