1

私は現在、アカウントとユーザーを扱う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 )のようなものを達成するための概念があるので、各ユーザーを反復処理して連絡先リストを取得してから合計するのではなく、連絡先リストを直接作成できますか?

どんな種類の提案も大歓迎です...

4

0 に答える 0