Rails 4: создайте область в модели пользователя для пользователей без роли

Я использую гем Rolify, мне нужно получить всех пользователей без роли в моем приложении. Как создать область в модели пользователя, в которую входят все пользователи без роли?

User.with_no_role


person svelandiag    schedule 29.01.2016    source источник
comment
Как определяются ваши role? belongs_to :role, has_many :roles ?   -  person Vasfed    schedule 30.01.2016
comment
И какая у вас версия рельсов?   -  person Austio    schedule 30.01.2016
comment
Я использую rolify и я использую Rails 4   -  person svelandiag    schedule 30.01.2016


Ответы (2)


Вы можете попробовать это:

User.with_role(nil)
person Mihail Petkov    schedule 29.01.2016
comment
Я использую гем Rolify для ролей, похоже, он не работает - person svelandiag; 30.01.2016

Внутри модели User вы можете определить область действия:

class User < ActiveRecord::Base
  scope :with_no_role, -> { where(role: nil) }
end

[EDIT] Поскольку вы используете Rolify, вам нужно сделать что-то вроде этого:

User.where.not(id: User.with_role(:admin).pluck(users: :id))

См. здесь

person Tim    schedule 29.01.2016