Загрузка нескольких файлов без каких-либо драгоценных камней, передавая массив параметров - PullRequest
0 голосов
/ 28 января 2019

У меня есть форма, к которой я могу добавить несколько изображений.

<%= form_with(model: photo, remote: true, multipart: true) do |form| %>
    <input type="file" name="images" accept="image/png, image/jpeg" multiple>

    <%= form.submit %>
<% end %>

Я хотел бы передать несколько изображений в мой метод контроллера через params.После загрузки в метод через параметры, я хочу просмотреть и создать такую ​​ссылку:

  def create
      Rails.logger.debug "#{params[:images]}"
      params[:images].each do |image|
        @photo = current_user.photos.new(photo_params)
        @value = Cloudinary::Uploader.upload(params[:image], :categorization => "google_tagging", :auto_tagging => 0.7)
        @photo.link = @value['secure_url']
        @photo.tag_list = @value['tags']
        @photo.save
      end
      redirect_to root_path
  end

Метод возвращает один файл и говорит, что метод `each 'не определен.

Howможно передать массив всех загружаемых изображений?

1 Ответ

0 голосов
/ 28 января 2019

Вам необходимо добавить форму массива «[]» к изображениям, например так (измените ее по собственной логике):

<%= form_with(model: photo, remote: true, multipart: true) do |form| %>
    <% (1..5).each do %>
          <input type="file" name="images[]" accept="image/png, image/jpeg" multiple>
    <% end %>

    <%= form.submit %>
<% end %>

Обновление: Спасибо @SRack за указание на этот индекс числане обязательно, iamges [0], images [1] будут работать, но на самом деле достаточно формы params "images []".

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...