Я пытаюсь сделать Multiupload снимки с carrierwave в моей app.There является 2 класс: Downloader
и Pictures
Param отсутствует или значение empty.Rails
Downloader
имеет поле а два по умолчанию
t.datetime "created_at"
t.datetime "updated_at"
и downloaders_controller
class DownloadersController < ApplicationController
def new
@downloader = Downloader.new
@picture = @downloader.pictures.build
end
def create
@downloader = Downloader.new(downloader_params)
if @downloader.save
params[:pictures]['image'].each do |img|
@picture = @downloader.pictures.create!(image: img, downloader_id: @downloader.id)
end
redirect_to new_downloader_path
end
end
private
def downloader_params
params.require(:downloader).permit(pictures_attributes: [ :image ])
end
end
pictures
стол
create_table "pictures", force: true do |t|
t.string "image"
t.datetime "created_at"
t.datetime "updated_at"
t.integer "downloader_id"
end
вид new
= form_for @downloader, multiple: true do |f|
= f.fields_for :pictures do |p|
= p.file_field :image, multiple: true, name: "pictures[image][]"
= f.submit
и когда я создаю новый объект downloader
, скорлупа показать мне ошибку
param is missing or the value is empty: downloader
, как это исправить?
Благодарю вас за ответ, но извините - я не понимаю, что вы имеете в виду. Не могли бы вы подробно рассказать об этом? – wweare
Несомненно. Указав такое имя, как это «имя:» изображения [изображение] [] «вы переопределяете значения по умолчанию для rails. По умолчанию рельсы будут обертывать ваши атрибуты формы в «загрузчик», но поскольку вы вручную задаете имя поля изображения, вы нарушаете значение по умолчанию и начинаете работать не так, как ожидалось. Просто избегайте возиться с рельсами по умолчанию, если вы не знаете и не понимаете, что делаете. Конечно, без обид. –
Да, я понял. Спасибо – wweare