Ceci est un refactoring assez commun, Martin Fowler l'appelle 'champ de déplacement'. Étant donné 3 modèles:Comment effectuer un refactoring de 'champ de déplacement' sur des modèles d'enregistrements actifs
class Person < ActiveRecord::Base
has_one :contact_details
has_one :address
end
class ContactDetails < ActiveRecord::Base
end
class Address < ActiveRecord::Base
end
comment refactoriser, y compris la migration, l'adresse has_one de Person à ContactDetails? Ensuite, les modèles ressembleraient:
class Person < ActiveRecord::Base
has_one :contact_details
end
class ContactDetails < ActiveRecord::Base
has_one :address
end
class Address < ActiveRecord::Base
end