ruby-on-rails - 上传照片
问题描述
我正在尝试使用 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
推荐阅读
- mysql - 如何在c程序中使用'mysql capi'?
- sql - SQL 从一个表返回数据以及从另一个表映射数据的最佳方式
- php - 如何使用带有 laravel 路由的 vue 从路由中获取 id
- python - Python - 并行+批处理目录中的文件
- codeigniter - 如何将数据从一个表复制到另一个“除了”一个字段 Codeigniter
- android - Android Pie 9.0 不播放音频
- java - 如何解密 Android JSON 有效载荷?
- ocaml - 如何处理管道输入到具有多个输入的函数但管道输入不是函数的最后一个输入?
- ios - 使用 Phonegap 构建生成 IPA 时出现错误代码 70
- macos - 多次为mac应用程序上传更新版本没有任何问题,但仍然不可用