ActionDispatch :: Http :: UploadedFile в массив для Active Storage Rails 5.2 - PullRequest
0 голосов
/ 13 июня 2018

Я строю Rails API.И с помощью Почтальона, чтобы проверить API.При загрузке файла через Почтальон я не получаю массив файлов в бэкэнде.Несмотря на то, что я получаю тип ActionDispatch::Http::UploadedFile.Из-за этого я не получаю свои avatar в post_params.Как это исправить.

Вот мой класс контроллера:

class Api::V1::PostsController < Api::V1::BaseController
  skip_before_action :authenticate, only: [:create]
  before_action :current_timeline, only: [:create]

  def create
    post = current_timeline.posts.build(post_params)
    binding.pry
    if post.save
      render_success(:created, post, meta: {message: 'Post sucessfully added'})
    else
      render_error(421, post.errors)
    end

  end

  private

  def post_params
    params.require(:post).permit(:message, :user_id, :occasion_id, :timeline_id, avatars: [])
  end

  def current_timeline
    Timeline.find(post_params[:timeline_id])
  end
end

1 Ответ

0 голосов
/ 13 июня 2018

Несмотря на то, что я получаю тип ActionDispatch::Http::UploadedFile

В почтальоне вам нужно изменить имя поля на avatars[], тогда вы можете получить аватары в виде массива:

{"avatars"=>[#ActionDispatch::Http::UploadedFile....]}

Вы можете отправить avatars[] параметр с / без индекса в скобках согласно этому ответу

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