У меня есть две сущности. Пользователь и роль. Я использую Devise и CanCan.
Они находятся во многих отношениях.
У пользователя много ролей.
Одна из ролей - «Администратор». Я проверяю, является ли мой пользователь администратором, используя:
if (user.role? :administrator) .... #this is already implemented and working
Я должен подтвердить, что в системе никогда не существует более двух администраторов в одном отделе. Для этого я создал собственный метод проверки:
class User < ActiveRecord::Base
validate :maximum_numbers_of_admins if self.role? :administrator
belongs_to :department
def maximum_numbers_of_admins
#Some code here
end
В этом методе я должен подсчитать количество пользователей, имеющих роль администратора (не считая себя)
Я не знаю, как установить: условия моего метода find для получения этого числа.
Это спецификация класса Role:
# == Schema Information
#
# Table name: roles
#
# id :integer not null, primary key
# name :string(255)
# created_at :datetime
# updated_at :datetime
#
Существует множество отношений между пользователями и ролями. (Таблица role_users)
Любая помощь с этим?
Спасибо