我目前正在开发处理帐户和用户的 Rails 3 应用程序。我正在尝试在模型上建立活动记录关联。对于当前的实现,我有帐户、用户和联系人模型。但这也涉及多态关系。我确实还有一个单独的表,称为关系表,其中存储了这些 has_many 关系的 id。
帐户:
has_many :users, :through => :relations, :as => :asset
用户:
has_many :contacts, :through => :relations, :as => :asset
关系:
属于_to :asset, :owner
例如:Account1 有 2 个用户。每个用户下有 2 个联系人。下面是关系表:
Asset Owner
User1 Account1
User2 Account1
Contact1 User1
Contact2 User1
Contact3 User2
Contact4 User2
这样可以跟踪每个关联。每个模型都有定义的关联。我在建立关联方面面临的问题是:
我需要建立从 Account 到 Contacts 的关联,以便我可以列出 User1 和 User2 下的所有联系人,也在一个帐户下。我可以执行 Account = User1.contacts + User2.contacts 之类的操作。但这不合适。
那么Rails 3中是否有任何概念可以实现(account.contacts),所以通过这个而不是遍历每个用户来获取联系人列表然后总结它们,我可以直接拥有联系人列表?
欢迎任何形式的建议...