我有点像Rails / AR newb,所以对这个简单的问题道歉。我有以下课程:
Account
User (has many Organizations, has one base Account, has access to many Accounts through permission from owner)
Organization (has many Users, has one Account)
对象可以属于组织,但我也希望用户能够直接拥有它们,所以我添加了Account类来实现单一所有权。每个用户和组织应该只有一个拥有的帐户,但用户应该可以通过帐户所有者指定的权限列表访问许多帐户。
鉴于我有一个名为user_account_roles的连接表:
user_account_roles:
account_id
user_id
role
这是我陷入困境的地方:
class User < ActiveRecord::Base
has_one :owned_account, :through => :user_account_roles
has_many :accounts, :through => :user_account_roles
end
两个具体问题:
我可以以某种方式指定用户拥有由连接表和role = owner中存在的行指定的拥有帐户。类似于has_one:owned_account,:through =&gt; :user_account_roles,:condition =&gt; (角色= “所有者”)?如果这不起作用,我应该在用户表中添加另一列,指定其帐户ID吗?
我可以在一个班级中使用这两个关联吗? (我希望user.owned_account返回它拥有的帐户,user.accounts返回用户有权访问的完整帐户列表)