Как мне сделать несколько загрузок с Dropzone JS в Rails Active Storage? - PullRequest
1 голос
/ 01 марта 2020

Я следую этому уроку, чтобы выполнить несколько загрузок файлов с Dropzone JS, но я не знаю, как получить несколько изображений, принадлежащих модели, для показа на странице 'show'. При загрузке нескольких изображений отображается только одно изображение, несмотря на выполнение .each в массиве @post.feature_image.

Учебное пособие здесь: https://web.archive.org/web/20191223022642/https: //web-crunch.com/rails-drag -drop-active-storage-стимул-dropzone /

Пример репо: https://github.com/justalever/drag_and_drop_active_storage

Изменения, которые я сделал, чтобы заставить его работать: _form. html .erb

data-dropzone-max-files="10"

сообщений / шоу. html .erb

 <%= link_to @post do %>
    <% @post.feature_image.each do |image| %>
      <%= image_tag image %>
    <% end %>
  <% end %>

моделей / post.rb

class Post < ApplicationRecord
  belongs_to :user
  has_many_attached :feature_image
end

Пожалуйста, помогите - что я Я делаю не так?

1 Ответ

0 голосов
/ 05 марта 2020

Столкнулся с той же проблемой с тем же учебником и целью, и я только что понял это!

  1. Множество названий вашей ассоциации, has_many_attached :feature_images
class Post < ApplicationRecord
  belongs_to :user
  has_many_attached :feature_images
end
Добавьте multiple: true в свое файловое поле (не забудьте также приумножить имя ассоциации там!)
<%= form.file_field :feature_images, direct_upload: true, multiple: true, data: { target: 'dropzone.input' } %>
Обновите метод контроллера post_params, чтобы разрешить массив feature_images вместо ожидания одного вложения:
def post_params
  params.require(:post).permit(:title, :body, feature_images: [])
end

Это должно быть все. Немного больше информации здесь https://guides.rubyonrails.org/active_storage_overview.html#has -many-attach

...