Client
各クライアント インスタンスが複数のアドレス、email_id、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
等?
それとも、has_many belongs_to に固執して、address、email_id、phone_number をプロファイル関係に入れ、クライアントhas_many
プロファイルと言うべきですか? それは私には正しく聞こえません。上で概説した豊かな交わりには何か利点がありますか?