Sql 向自定义添加即时加载有许多关系

Sql 向自定义添加即时加载有许多关系,sql,ruby-on-rails,activerecord,Sql,Ruby On Rails,Activerecord,组和用户在“用户角色”表上具有多个直通关系,该表指定用户在每个组中的角色(待定、成员、管理员等)。对于给定的组,如何返回与该组中某个特定角色匹配的所有用户,以使代码枯燥,并加载适当的关联 class Group < ActiveRecord::Base has_many :user_roles, dependent: :destroy has_many :users, through: :user_roles def members(role) self.users.include

组和用户在“用户角色”表上具有多个直通关系,该表指定用户在每个组中的角色(待定、成员、管理员等)。对于给定的组,如何返回与该组中某个特定角色匹配的所有用户,以使代码枯燥,并加载适当的关联

class Group < ActiveRecord::Base

has_many :user_roles, dependent: :destroy
has_many :users, through: :user_roles

def members(role)
  self.users.includes(:user_roles).where("user_role.role = ?", role)
  # Returns following error message:
  # PG::UndefinedTable: ERROR:  missing FROM-clause entry for table "user_role"
end
类组
您的表名可能是“用户角色”,而不是“用户角色”。将where子句中的表名更改为“用户角色”

def members(role)
  self.users.includes(:user_roles).where("user_roles.role = ?", role)
end

您的表名可能是“用户角色”,而不是“用户角色”。将where子句中的表名更改为“用户角色”

def members(role)
  self.users.includes(:user_roles).where("user_roles.role = ?", role)
end

您的表名可能是“用户角色”,而不是“用户角色”。将where子句中的表名更改为“用户角色”

def members(role)
  self.users.includes(:user_roles).where("user_roles.role = ?", role)
end

您的表名可能是“用户角色”,而不是“用户角色”。将where子句中的表名更改为“用户角色”

def members(role)
  self.users.includes(:user_roles).where("user_roles.role = ?", role)
end

我假设
user\u roles
是表的名称,而不是
user\u role
。添加s可能会解决您的问题。我假设
user\u roles
是表的名称,而不是
user\u role
。添加s可能会解决您的问题。我假设
user\u roles
是表的名称,而不是
user\u role
。添加s可能会解决您的问题。我假设
user\u roles
是表的名称,而不是
user\u role
。可能添加一个s将解决您的问题。