这是一个相当常见的重构,Martin Fowler 称之为“移动域”。给定 3 个模型:
class Person < ActiveRecord::Base
has_one :contact_details
has_one :address
end
class ContactDetails < ActiveRecord::Base
end
class Address < ActiveRecord::Base
end
如何重构(包括迁移)从 Person 到 ContactDetails 的 has_one 地址?之后模型将如下所示:
class Person < ActiveRecord::Base
has_one :contact_details
end
class ContactDetails < ActiveRecord::Base
has_one :address
end
class Address < ActiveRecord::Base
end