Rails Admin: как скрыть модели Active Storage?

Sep 03 2020

Я использую Active Storage и Cloudinary для хранения некоторых изображений одной из моих моделей, но после добавления этого Active Storage стало появляться в Rails Admin на вкладке навигации, посвященной ему:

И его модели в Dashboard:

Я хочу удалить оба. Я пробовал эти вещи безуспешно:

Начнем с попытки объявить только те модели, в которых я хочу присутствовать

config.included_models = [User, Notebook, Tag, Category, Part]

Но поскольку я использую вложения в Notebook, он жалуется:

Тогда я попытался просто скрыть:

config.model 'ActiveStorage' do
 list do
  visible false
 end
 navigation do
  visible false
 end
end  

Также с моделями напрямую

config.model 'Attachment' do
 list do
  visible false
 end
 navigation do
  visible false
 end
end

config.model 'Blob' do
 list do
  visible false
 end
 navigation do
  visible false
 end
end    

Или, может быть, можно сделать что-то факторинг, например

ActiveStorage::Base.descendants.each do |imodel|
 config.model "#{imodel.name}" do
   visible false
 end
end  

Что мы можем сделать с ActiveRecord, как показано в разделе «Создание фабрики настраиваемых полей» ?

Ответы

1 IcaroRezende Sep 07 2020 at 22:11

В вашем rails_admin.rbдобавлении следующее:

config.model 'ActiveStorage::Blob' do
  visible false
end

поскольку класс Blob происходит от ActiveStorage.

То же самое относится и к классу Attachment.

GuillermoSiliceoTrueba Sep 04 2020 at 20:32

Вы почти получили это, это должно быть

config.model 'Blob' do
 visible false
end  

Вариант б) На самой модели blob.rb

class Blob < ApplicationRecord
  rails_admin do
    visible false
  end
end