Rails - отправка массива через параметры почтальона запрещена - PullRequest
0 голосов
/ 06 апреля 2019

Я пытаюсь загрузить изображения в рельсы, используя Carrierwave. но у меня проблема с разрешениями

Это мой контроллер:

class PhotoController < ApplicationController
  def upload_multiple
    render json: {
      status: params[:photos].inspect,
    }, status: 200
  end

  def photos_params
    params.require(:photos).permit(:photos => [])
  end
end

Я пытаюсь проверить отладку. Результат проверки:

"status": "<ActionController::Parameters {\"1\"=>#<ActionDispatch::Http::UploadedFile:0x00007fe8b1ae7d50 @tempfile=#<Tempfile:/var/folders/4w/32p7h9rx2mjf9_m60852pn2m0000gn/T/RackMultipart20190406-1520-1r799qx.jpg>, @original_filename=\"IMG_1303.jpg\", @content_type=\"image/jpeg\", @headers=\"Content-Disposition: form-data; name=\\\"photos[1]\\\"; filename=\\\"IMG_1303.jpg\\\"\\r\\nContent-Type: image/jpeg\\r\\n\">} permitted: false>"

То, что я передаю в почтальоне, таково: enter image description here

Что я делаю не так?

1 Ответ

1 голос
/ 06 апреля 2019

EDIT

Переименуйте параметр с photos[1] на photos[]. Я не могу сказать, возможно ли это в почтальоне, но с точки зрения html это должно быть <input type="file" name="photos[]"> (а форма enctype равна multipart/form-data), так как похоже, что вы отправляете хэш, затем измените params.require(:photos).permit(:photos => []) до params.permit(photos: []).

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