Rails Active Admin - разный index для разных групп пользователей

Рейтинг: 0Ответов: 1Опубликовано: 10.03.2023

Есть рельса 5.2.1 и актив админ 1.3.1, канкан для авторизации. У AdminUser есть атрибут role, который определяет доступ.

Нужно для определенной роли отключить отображение списка индекса(скрыть коллекцию обьектов), но оставить фильтры и выдавать результат по ним. В документации нашел несколько вариантов, но не уверен в их работоспособности. Как лучше реализовать эту логику?

Ответы

▲ 0Принят

В итоге помогло переписывание метода scoped_collection c добавлением условия по приходящим params (наличие фильтра, в моем случае 'q').

def scoped_collection
      if current_admin_user.operator_role? && params['q'].blank?
        super.where(id: nil)
      else
        super.includes(
        ...
        )
      end
 end