Подтвердить что ты не робот

Найти всех пользователей с определенной ролью, используя

Как я могу получить всех пользователей с конкретной ролью при использовании команды rolify? Я пробовал следующее, но это не помогло:

User.with_role :admin

Я получаю следующую ошибку:

NoMethodError: undefined method `with_role' for #<Class:0x0000000743f9c0>

Не удалось найти способ сделать это.

4b9b3361

Ответ 1

Вы можете использовать метод with_role с классом User, чтобы найти всех пользователей, у которых есть роль в версии 3.1.0.

User.with_role :admin

Ответ 2

Я бы попросил роль для него пользователей

admins = Role.find_by_name('admin').users

метод with_role предназначен для конкретного экземпляра пользователя, а не для класса для всех пользователей. Если вы хотите реализовать это, вам нужно сделать что-то вроде этого:

#not 100% on this code, haven't tested it, but you get the idea.
User < ActiveRecord::Base
  def self.with_role(role)
     my_role = Role.find_by_name(role)
     where(:role => my_role)
  end
end

Ответ 3

Вы упомянули ресурс в моделях, чтобы разместить роли на

class User < ActiveRecord::Base
  resourcify
end

С помощью этого вы можете использовать методы класса_соли и find_roles.

Ответ 4

если вам нужен дополнительный "where"

@courriers = User.where.not(latitude: nil, longitude:nil ).with_role :Courrier