ActiveAdmin / Carrierwave多图像上传显示

时间:2018-08-29 11:29:10

标签: ruby-on-rails activeadmin

Everebody您好,我以多张上传的照片的显示方式有问题

Error with rails

您可以看到此上传的其他文件

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 :(得分:0)

您的表格如何?请检查是否设置了多个文件的属性:

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

此外,如果您要上传不同模型的文件,建议您创建另一个上传器(每个模型的每个属性一个上传器)。 photo应该是属性,而不是模型。

mount_uploader :photo, PhotoUploader

有关更多信息: github carrierwave

答案 1 :(得分:0)

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

我的表单已进入有效的管理文件

我有2张照片上传器1用于头像,第二张用于多张照片用于汽车课程