我有一个Client
模型,需要每个客户端实例拥有并创建多个地址、email_ids、phone_numbers。一个简单的has_many
关系不允许我扩展我认为所以我想我应该去建立一个has_many :through
关系
我想使用 has_many :through 关系
class Client < ActiveRecord::Base
has_one :profile
has_many :addresses, :through => :profile
has_many :emails, :through => :profile
has_many :phonenumbers, :through => :profile
end
class Profile < ActiveRecord::Base
belongs_to :client
has_many :addresses
has_many :emailids
has_many :phonenumbers
end
class Address < ActiveRecord::Base
belongs_to :profile
end
class EmailId < ActiveRecord::Base
belongs_to :profile
end
class PhoneNumber < ActiveRecord::Base
belongs_to :profile
end
然后我是否能够执行以下查询:
client.phonenumbers
client.create_phonenumbers
ETC?
还是我应该坚持使用 has_many belongs_to 并将地址、电子邮件 ID 和电话号码放在个人资料关系中,然后说客户has_many
资料?这对我来说听起来不对。我上面概述的富人协会有什么好处吗?