Rails ActiveRecord最佳实践

时间:2013-09-05 04:52:31

标签: ruby-on-rails activerecord

我有点像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

两个具体问题:

  1. 我可以以某种方式指定用户拥有由连接表和role = owner中存在的行指定的拥有帐户。类似于has_one:owned_account,:through =&gt; :user_account_roles,:condition =&gt; (角色= “所有者”)?如果这不起作用,我应该在用户表中添加另一列,指定其帐户ID吗?

  2. 我可以在一个班级中使用这两个关联吗? (我希望user.owned_account返回它拥有的帐户,user.accounts返回用户有权访问的完整帐户列表)

0 个答案:

没有答案