Итак, я ищу, чтобы взять и записать существующую запись и дублировать ее. Когда я делаю простой .dup
, ни один из полиморфных активов не дублируется.Rails: Глубокий дубликат записи с полиморфными детьми.
class Contact < ActiveRecord::Base
belongs_to :user
has_one :profile, as: :profileable, dependent: :destroy
has_one :address, through: :profile
has_many :phones, through: :profile
has_many :photos, through: :profile
has_many :emails, through: :profile
has_many :socials, through: :profile
has_many :websites, through: :profile
end
class Profile < ActiveRecord::Base
belongs_to :profileable, polymorphic: true
has_many :addresses, as: :addressable, dependent: :destroy
has_many :phones, as: :phoneable, dependent: :destroy
has_many :photos, as: :photable, dependent: :destroy
has_many :emails, as: :emailable, dependent: :destroy
has_many :socials, as: :sociable, dependent: :destroy
has_many :websites, as: :websiteable, dependent: :destroy
end
Например
Contact.new(user_id: 1, profile: User.second.profiles.first.dup).save
ли успешно скопировать профиль в новый контакт для пользователя с идентификатором 1. Но адрес, телефон, фото, электронная почта, и социального характера на сайте информация не скопируйте в этом примере. Как скопировать каждый зависимый ребенок «если» он существует?