Загрузка фотографий несущей волны - PullRequest
0 голосов
/ 06 апреля 2019

Я пытаюсь загрузить серию фотографий, используя Carrierwave.

Редактировать: это обновленные файлы после исправления массива в Почтальоне + Изменение в контроллере

Это контроллер:

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

В Почтальоне, вот как я загружаю файл:

enter image description here

Теперь записи сохраняются в базе данных, но никакие изображения не загружаются вообще. Каталог загрузок пуст.

Что я делаю не так?

1 Ответ

1 голос
/ 06 апреля 2019

Когда вы просто зацикливаете 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

...