Rails_admin和Active_storage

时间:2018-09-14 16:06:47

标签: rails-admin rails-activestorage

我正在尝试使用Rails_Admin通过Active_Storage上传多个文件。 这是我的代码:

  belongs_to :driver
  has_one_attached :avatar
  has_many_attached :pictures


  attr_accessor :remove_avatar
  after_save { asset.purge if remove_avatar == '1' }


  attr_accessor :remove_pictures
  after_save do
    Array(remove_pictures).each { |id| pictures.find_by_id(id).try(:purge) }
  end


  rails_admin do
    field :driver_id
    field :avatar, :active_storage
    field :pictures, :multiple_active_storage


  end

我的图片只有一个字段。我已经尝试过像这样多次复制该字段

rails_admin do
    field :driver_id
    field :avatar, :active_storage
    field :pictures, :multiple_active_storage
field :pictures, :multiple_active_storage
field :pictures, :multiple_active_storage


  end

我仍然只有2个字段,一个用于头像,另一个仅用于一张图片。有想法吗?

1 个答案:

答案 0 :(得分:0)

首先,要删除作品,您需要以这种方式声明它。

  belongs_to :driver
  has_one_attached :avatar
  has_many_attached :pictures


  attr_accessor :remove_avatar

  attr_accessor :remove_pictures

  after_save do
    avatar.purge if remove_avatar == '1'
    Array(remove_pictures).each { |id| pictures.find_by_id(id).try(:purge) }
  end


  rails_admin do
    field :driver_id
    field :avatar, :active_storage do 
      delete_method :delete_avatar
    end

    field :pictures, :multiple_active_storage do 
      delete_method :delete_pictures
    end

  end

秒,它将仅显示图片的一个字段,但是它是一个多上传文件,因此您可以发送任意数量的文件