Обновлено: Ваш упомянутый метод может быть достигнут следующим образом:
def self.find_users_with_role(role)
role.users
end
Это просто и может быть сделано в 2 шага:
Сначала найдите роль, из которой вы хотите вернуть всех пользователей.
#Assume the role you want has the id of 3.
role = Role.find(3)
Во-вторых, найдите всех пользователей, связанных с этой ролью.
all_users = role.users
Предполагается, что вы правильно настроили связь между моделями user
и role
со связью has_and_belongs_to_many
class User < ActiveRecord::Base
has_and_belongs_to_many :roles
#More codes below
end
и
class Role < ApplicationRecord
has_and_belongs_to_many :users
end