Извините, но я застрял. Как я могу загрузить несколько файлов с помощью CarrierWave и сохранить их один за другим? Я не хочу иметь массив с несколькими файлами, но каждый файл нужно сохранять индивидуально. У меня есть форма, которая принимает несколько файлов. Но я только нахожу способы сохранить всю загрузку как одну запись. Как я могу создавать отдельные объекты из параметров с несколькими файлами?
Спасибо за любую помощь!
EDIT:
Вот мой контроллер:
class ImagesController < ApplicationController
def new
@image = Image.new
end
def create
@image = Image.new(image_params)
if @image.save
flash[:primary] = "Image uploaded"
redirect_to images_path
else
render 'new'
end
end
def index
@images = Image.all
@categories = Category.all
end
private
def image_params
params.require(:image).permit({image: []}, :image_title, :image_file_size, :image_content_type, :image_description, :category_id, :image_creation_date, :image_uploader)
end
end
Этот код работает. Проблема в том, что я не знаю, как перебирать параметры. Однако я могу получить доступ к отдельным параметрам. Но я не могу хранить их по одному.
Вот моя пробная версия:
def create
image_params['image'].each do |img|
@image = Image.new(img)
@image.save
end
redirect_to images_path
end
Ошибка:
ArgumentError Exception: When assigning attributes, you must pass a hash as an argument, ActionDispatch::Http::UploadedFile passed.
Я понимаю, что не есть ha sh, но только отдельные файлы и это ошибка. Но я не знаю, как еще это сделать.