查找组织及其子组织中的所有用户

时间:2016-03-01 18:00:52

标签: ruby-on-rails activerecord associations

用户属于某个组织,而该组织又可以拥有多个用户和子组织。您如何找到所有组织用户?

我有名为UserOrganization的模型。他们有以下关系:

在用户模型中:

belongs_to :organization

在组织模型中:

has_many :users
has_many :child_organizations, class_name: "Organization", foreign_key:"parent_id"
belongs_to :parent, class_name: "Organization"

我想查找属于当前用户组织的child_organizations的所有用户。

@users = current_user.organization.child_organizations.users

它返回此错误:

undefined method `users' for Organization::ActiveRecord_Associations_CollectionProxy:0x8f975d0

1 个答案:

答案 0 :(得分:1)

根据您问题的格式,我不完全确定您的模型关系是什么。但是如果你想找到属于current_user组织的child_organizations的所有用户......

这是您建立关系的方式

class User < ActiveRecord::Base
  belongs_to :organization
  belongs_to :child_organization
end

class Organization < ActiveRecord::Base
  has_many :child_organizations
  has_many :users, through: :child_organizations
end

class ChildOrganization < ActiveRecord::Base
  belongs_to :organization
  has_many :users
end

现在您可以使用以下

@users = current_user.organization.users