Rails:错误多个文件上传,空数组
Posted
技术标签:
【中文标题】Rails:错误多个文件上传,空数组【英文标题】:Rails : Error multiple file upload, empty array 【发布时间】:2019-05-22 16:44:28 【问题描述】:我有一个大问题,我的 Rails 应用程序无法正确上传照片,我每次都会收到此错误。
您可以在照片右侧看到无法上传云端网址
我必须这样做,因为管理员而不是从网站本身添加图片
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
照片.rb
mount_uploaders :photos, PhotosUploader
belongs_to :car
汽车.rb
extend FriendlyId
friendly_id :title, use: :slugged
mount_uploader :photo, PhotoUploader
has_many :photos
你可以看到我的错误
【问题讨论】:
请不要使用错误或代码的截图。我们需要能够轻松读取您的堆栈跟踪。 【参考方案1】:mount_uploaders
目前在 Cloudinary Ruby gem 中不受支持。可以在这里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
【讨论】:
以上是关于Rails:错误多个文件上传,空数组的主要内容,如果未能解决你的问题,请参考以下文章