Доступ к коллекции ресурсов Activeadmin в инициализаторе приложения - PullRequest
0 голосов
/ 07 марта 2019

У меня есть этот код в файле инициализатора Rails, чтобы отключить специальный фильтр для всех моих ресурсов администратора:

ActiveAdmin.application.namespaces[:admin].resources.values.each do |resource|
  resource.remove_filter :some_common_filter if resource.is_a? ActiveAdmin::Resource
end

но в этот момент выполнения программы коллекция ресурсов по-прежнему пуста (resources.count == 0), поэтому вызов #remove_filter не выполняется.

То же происходит внутри ActiveAdmin.setup do | config | и использования config вместо ActiveAdmin.application .

Позже в консоли я могу получить доступ ко всем ресурсам администратора, но не в инициализаторе.

1 Ответ

0 голосов
/ 07 марта 2019

Только что нашел решение, используя after_load крюк

ActiveAdmin.after_load do |app|
  app.namespaces.each do |name, _namespace|
    name.resources.values.each do |resource|
      resource.remove_filter :my_common_filter if resource.is_a?(ActiveAdmin::Resource) && resource.filters.include?(:my_common_filter)
    end
  end

end

...