问题描述
我正在使用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
我们可以像Creating a Custom Field Factory所示使用ActiveRecord吗?
解决方法
在您的rails_admin.rb
中添加以下内容:
config.model 'ActiveStorage::Blob' do
visible false
end
因为Blob类来自ActiveStorage。
附件类也是如此。
,您几乎明白了,它一定是
config.model 'Blob' do
visible false
end
选项b) 在模型本身上blob.rb
class Blob < ApplicationRecord
rails_admin do
visible false
end
end
,
在 Rails 6 中,我执行以下操作
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
,
在 rails 6 中我使用过
config.excluded_models = %w[ActiveStorage::Blob ActiveStorage::Attachment ActiveStorage::VariantRecord]