class Category include Mongoid::Document include Mongoid::Timestamps field :disable, type: Boolean, default: false field :title, localize: true belongs_to :module_app has_many :authorizations scope :enabled, ->{ where(:disable.in => [false, nil, ''])} validates :title, presence: true def category_sub_managers Authorization.category_authorized_users(self).pluck(:user_id) end def self.authorized(user) module_app_categories = self.each{|c| c}.to_a rescue [] authorized_categories = user.approved_categories intersection = (module_app_categories & authorized_categories) intersection end end