我正在尝试使用Carrierwave上传一系列照片。
编辑:在Postman + Change in controller中修复阵列后,这些是更新的文件
这是控制器:
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照片的模型文件:
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
在Postman中,这是我上传文件的方式:
现在记录正在保存在数据库中,但根本没有上传任何图像。目录上传为空。
我究竟做错了什么?
当只是循环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