正在上传照片carrierwave

问题描述 投票:0回答:1

我正在尝试使用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中,这是我上传文件的方式:

enter image description here

现在记录正在保存在数据库中,但根本没有上传任何图像。目录上传为空。

我究竟做错了什么?

ruby-on-rails ruby-on-rails-5 carrierwave
1个回答
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

Params in postman

© www.soinside.com 2019 - 2024. All rights reserved.