上传照片载波

时间:2019-04-06 15:03:55

标签: ruby-on-rails ruby-on-rails-5 carrierwave

我正在尝试使用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

在邮递员中,这是我上传文件的方式:

enter image description here

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

我在做什么错了?

1 个答案:

答案 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

example snapshot

相关问题