Активный администратор / загрузка нескольких изображений Carrierwave

Я боролся уже неделю, я пытаюсь создать форму внутри active_admin, где пользователь может выбрать несколько картинок, добавить описание и заголовок, а затем отправить свою форму, чтобы создать нечто, похожее на галерею

Пока у меня есть две модели, созданные с помощью команд:

rails g model Gallery title:string description:text
rails g model Image url:text #just in case the user has LOTS of images to upload

Вот как выглядят мои модели сейчас:

gallery.rb

class Gallery < ApplicationRecord
  has_many :images
  accepts_nested_attributes_for :images, allow_destroy: true
end

image.rb

class Image < ApplicationRecord

  belongs_to :gallery
  mount_uploader :image, ImageUploader #Using Carrier Wave
end

админ /gallery.rb

  permit_params :title, :description, :images

  form html: { multipart: true }  do |f|
    f.inputs  do
      f.input :title
      f.input :description
      f.input :images, as: :file, input_html: { multiple: true }
    end
    f.actions
  end

Моя проблема в том, что, несмотря на то, что моя форма "изображения" отображается, мне не удается сохранить изображения с помощью другой модели, ничего не загружается в мою папку "public/upload", и ничего не записывается в моей базе данных.

Я не могу найти ничего интересного в интернете, который мог бы решить эту проблему

Не стесняйтесь просить другой файл

Любая помощь приветствуется

1 ответ

allow_params:title,:description,:images

Почему : изображения, я думаю, вы имели в виду images_attributes: [: url]?

Но это тоже не сработает. Я следовал за шагами здесь: https://github.com/carrierwaveuploader/carrierwave/issues/1653

Вы можете сделать это только с одной моделью

rails g model Gallery title:string description:text url:string

модели /gallery.rb

# your url is accepted as an array, that way you can attach many urls
serialize :url, Array
mount_uploaders :url, ImageUploader

Примечание: используйте serialize с Sqlite, для Postgres или какой-либо другой базой данных, способной обрабатывать массивы: read: добавить столбец массива в Rails

админ /gallery.rb

permit_params :title, :description, url: []
form html: { multipart: true }  do |f|
  f.inputs  do
    f.input :title
    f.input :description
    f.input :url, as: :file, input_html: { multiple: true }
  end
  f.actions
end
Другие вопросы по тегам