我正在尝试使用Carrierwave上传一系列照片。
编辑:这些是在Postman中固定阵列+更改控制器中的更新文件
这是控制器:
class PhotoController < ApplicationController
def upload_multiple
photos_params.each do |uploaded_photo|
@current_user.photos.create(:photo => uploaded_photo)
end
render json: {
status: @current_user.photos.last.photo.inspect,
}, status: 200
end
def photos_params
params.permit(:photos => [])
end
end
这是photo.rb的Photo模型文件:
class Photo < ApplicationRecord
belongs_to :user
mount_uploader :photo, PhotoUploader
end
在user.rb中,我有
has_many :photos
在上传器中,唯一未注释的行是:
class PhotoUploader < CarrierWave::Uploader::Base
storage :file
def store_dir
"uploads/#{model.class.to_s.underscore}/#{mounted_as}/#{model.id}"
end
end
在邮递员中,这是我上传文件的方式:
现在记录正在保存在数据库中,但是根本没有图像上传。目录上传为空。
我在做什么错了?
答案 0 :(得分:1)
仅循环photo_params时,它不能正常工作,因为图像应该在photo_params [“ photos”]中循环。
尝试将代码更改为:
def upload_multiple
def upload_multiple
photos_params["photos"].each do |uploaded_photo|
@current_user.photos.create(:photo => uploaded_photo)
end
render json: {
status: @current_user.photos.last.photo.inspect,
}, status: 200
end
def photos_params
params.permit(:photos => [])
end
end