Rails: Ошибка загрузки нескольких файлов, пустой массив - PullRequest
0 голосов
/ 22 декабря 2018

У меня большая проблема, мое приложение rails не может загружать фотографии правильно, я получаю эту ошибку каждый раз.

Вы можете видеть справа от фотографий, не можете загрузить облачный URL

a busy cat

Я должен сделать это, поскольку администратор, а не с самого сайта, чтобы добавить фотографии

cars_controller.rb

def index
 @cars = Car.all()
end

def show
 @car = Car.friendly.find(params[:id])
 @photos = @car.photos
 end
end

photos_uploader.rb

 include Cloudinary::CarrierWave

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

 def extension_whitelist
  %w(jpg jpeg gif png)
 end

photo.rb

mount_uploaders :photos, PhotosUploader
belongs_to :car

car.rb

extend FriendlyId
friendly_id :title, use: :slugged

mount_uploader :photo, PhotoUploader

has_many :photos

Вы можете увидеть мою ошибку

error

1 Ответ

0 голосов
/ 29 декабря 2018

mount_uploaders в настоящее время не поддерживаются в геме Cloudinary Ruby.Проблему можно отследить здесь https://github.com/cloudinary/cloudinary_gem/issues/304.

Существует пример проекта (https://github.com/taragano/Cloudinary_multiple_uploads), который иллюстрирует временное решение. Модели - это альбом и фотография, где альбом имеет отношение has_many к фотографиями фотография имеет отношение belongs_to к альбому.

Модели (https://github.com/taragano/Cloudinary_multiple_uploads/tree/master/app/models) должны выглядеть следующим образом:

class Photo < ActiveRecord::Base
    belongs_to :album
    mount_uploader :image, ImageUploader
end

class Album < ActiveRecord::Base
    has_many :photos, dependent: :destroy
end

Находясь в контроллере (https://github.com/taragano/Cloudinary_multiple_uploads/blob/master/app/controllers/albums_controller.rb), вам нужно будет перебирать каждую фотографию и сохранять ее в альбоме, к которому она принадлежит:

def store_photos
    photos = params[:album][:photos]
    photos.each{|photo| @album.photos.create(image: photo)} if photos
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...