ActionDispatch::Http::UploadedFile в массив для Active Storage Rails 5.2
Я строю 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 ответ
Несмотря на то, что я получаю тип
ActionDispatch::Http::UploadedFile
В почтальоне вам нужно изменить имя поля на avatars[]
тогда вы можете получить аватары в виде массива:
{"avatars"=>[#ActionDispatch::Http::UploadedFile....]}
Ты можешь отправить avatars[]
параметр с / без индекса в скобках согласно этому ответу