Rails管理员:如何隐藏活动存储模型?

Rails Admin: How to Hide Active Storage models?

我正在使用 Active Storage 和 Cloudinary 来存储我的一个模型的一些图像,但是在添加这个之后,Active Storage 开始出现在 Rails Admin 中一个专门用于它的导航选项卡中:

及其在仪表板中的模型:

我想删除两者。我尝试了这些东西但没有成功:

首先尝试仅声明我想要出现的模型

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

但由于我在笔记本中使用附件,它会抱怨:

然后我试着隐藏:

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 做的那样 Creating a Custom Field Factory ?

你快明白了,需要它

config.model 'Blob' do
 visible false
end  

选项b) 在模型本身 blob.rb

class Blob < ApplicationRecord
  rails_admin do
    visible false
  end
end

在您的 rails_admin.rb 中添加以下内容:

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

因为 Blob class 来自 ActiveStorage。

同样适用于附件 class。

在Rails6中我做了以下

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

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

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

在rails6我用了

config.excluded_models = %w[ActiveStorage::Blob ActiveStorage::Attachment ActiveStorage::VariantRecord]