Activeadmin - activestorage удалить редактировать несколько фотографий - PullRequest
0 голосов
/ 31 августа 2018

Я пытаюсь найти способ удаления изображений, загруженных из activeadmin, с помощью activestorage. Мне удалось показать все изображения в представлении просмотра и редактировании ресурса, но я не могу найти способ удалить каждое изображение, если я хочу. код моей модели:

  class Category < ApplicationRecord
    has_many_attached :images
  end

И файл ресурса activeadmin:

   ActiveAdmin.register Category do

       permit_params :category_name, :description, :photo_cover, images: []

index do
    selectable_column
    id_column
    column :category_name
    column :created_at
    actions
end


show do |t|
    if t.photo_cover.attached? && t.images.attached?
        attributes_table do
          row :category_name
          row :description
          row "images" do |m|
                m.images.each do |img|
                       span do
                           image_tag(img)
                       end
                end
          end
        end
      else
        attributes_table do
          row :category_name
          row :description
        end
      end
  end


form :html => { :enctype => "multipart/form-data" } do |f|
      f.inputs "Basic Info" do
          f.input :category_name
          f.input :description 
      end

      f.inputs do
          f.input :images, as: :file, input_html: { multiple: true }
      end

       if f.object.images.attached?
            f.object.images.each do |img|
                span do
                   image_tag(img)
                 end
             end
        end

      f.actions
      end
 end

Заранее спасибо !!

1 Ответ

0 голосов
/ 25 января 2019

создать собственный маршрут в модели active_admin как здесь

member_action :delete_category_image, method: :delete do
 @pic = ActiveStorage::Attachment.find(params[:id])
 @pic.purge_later
 redirect_back(fallback_location: edit_admin_category_path)   
end

в форме,

if f.object.images.attached?
        f.object.images.each do |img|
           div: class=> "some_class" do
            span image_tag(img)
            span link_to "delete",delete_category_image_admin_category_path(img.id),method: :delete,data: { confirm: 'Are you sure?' }
             end
            end
         end
    end
...