私は現在、アカウントとユーザーを扱うRails 3アプリケーションに取り組んでいます。モデルにアクティブなレコードの関連付けを構築しようとしています。現在の実装では、アカウント、ユーザー、および連絡先モデルがあります。しかし、これにはポリモーフィックな関係も含まれます。これらの has_many リレーションの ID を格納する Relation テーブルと呼ばれる別のテーブルがもう 1 つあります。
アカウント:
has_many :users, :through => :relations, :as => :asset
ユーザー:
has_many :contacts, :through => :relations, :as => :asset
関係:
所属先:資産、:所有者
例: Account1 には 2 人のユーザーがいます。また、各ユーザーの下には 2 つの連絡先があります。以下は関係テーブルです:
Asset Owner
User1 Account1
User2 Account1
Contact1 User1
Contact2 User1
Contact3 User2
Contact4 User2
これにより、すべての関連付けが追跡されます。各モデルには has_many 関連付けが定義されています。関連付けを構築するために私が問題に直面していることは::
Account から Contacts への関連付けを作成して、User1 と User2 の下にあるすべての連絡先を、アカウントの下にもリストできるようにする必要があります。Account = User1.contacts + User2.contacts のような操作を実行できます。しかし、これは適切ではありません。
Rails 3には( account.contacts )のようなものを達成するための概念があるので、各ユーザーを反復処理して連絡先リストを取得してから合計するのではなく、連絡先リストを直接作成できますか?
どんな種類の提案も大歓迎です...