【发布时间】:2014-10-07 22:05:41
【问题描述】:
组和用户通过表 user_roles 上的关系具有 has_many,它指定用户在每个组中的角色(待定、成员、管理员等)。对于给定的组,我如何返回与该组中特定角色匹配的所有用户,以便代码是 DRY 并急切加载适当的关联?
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
【问题讨论】:
-
我假设
user_roles是表的名称,而不是user_role。可能添加一个 s 可以解决您的问题。
标签: sql ruby-on-rails activerecord