ActiveAdmin / Carrierwave показ нескольких загрузок изображений - PullRequest
0 голосов
/ 29 августа 2018

Hello Everebody У меня проблема с отображением фотографий, которые я загружаю в нескольких экземплярах

Ошибка с рельсами

Вы можете увидеть мой другой файл для этой загрузки

Файл ActiveAdmin

ActiveAdmin.register Photo do

permit_params :car_id, { photos: [] }

index do
  selectable_column
  id_column
  column "numéro voiture", :car_id
  column "Photo" do |photo|
      "<a href='#{photo.photos_urls}'><img src='#{photo.photos_urls}' width='150'></a>".html_safe
  end

  actions
end

form do |f|
  f.inputs do
    f.input :car_id
    f.input :photos, as: :file, input_html: { multiple: true }
  actions
end

photos_uploader.rb

 class PhotosUploader < CarrierWave::Uploader::Base
  CarrierWave::SanitizedFile.sanitize_regexp = /[^_[:word:]\.\-\+]/
  storage :file

  def store_dir
    "uploads/#{model.class.to_s.underscore}/#{mounted_as}/#{model.id}"
  end

  def extension_whitelist
    %w(jpg jpeg gif png)
  end
end

photo.rb

class Photo < ApplicationRecord

  mount_uploaders :photos, PhotosUploader

  belongs_to :car
end

car.rb

class Car < ApplicationRecord
    extend FriendlyId
    friendly_id :title, use: :slugged

    mount_uploader :photo, PhotoUploader

    has_many :photos
end

Ответы [ 2 ]

0 голосов
/ 29 августа 2018
form do |f|
  f.inputs do
    f.input :car_id
    f.input :photos, as: :file, input_html: { multiple: true }
  actions
end

моя форма находится в активном админ-файле

У меня есть 2 загрузчика фотографий 1 для аватара и вторая для нескольких фотографий для моего класса автомобиля

0 голосов
/ 29 августа 2018

Как твоя форма? Пожалуйста, проверьте, если вы установите атрибут для нескольких файлов:

<%= form.file_field :photo, multiple: true %>

Также, если вы загружаете файлы в разных моделях, я рекомендую вам сделать еще один загрузчик (один загрузчик для каждого атрибута для каждой модели). photo должен быть атрибутом, а не моделью.

mount_uploader :photo, PhotoUploader

Для получения дополнительной информации: github carrierwave

...