#ruby-on-rails
#ruby-on-rails
Вопрос:
{
"image_url": [
"/images/folder1/554adeec-1b54-45db-a911-a7fb878d1820/image-1525800936.jpg",
"/images/folder1/554adeec-1b54-45db-a911-a7fb878d1820/image-1525800937.jpg",
"/images/folder1/554adeec-1b54-45db-a911-a7fb878d1820/image-1525800938.jpg"
]
}
Вот мой путь к пользовательской папке при сохранении изображений:
def store_dir
"images/folder1/#{model.uuid}"
end
Вот мои параметры, разрешающие:
def folder1_params
params.permit({images: []})
end
Чего я пытаюсь добиться, так это того, чтобы URL-адрес изображения был таким же, как я упоминал выше. Но то, что я получаю, это
"url": "/images/folder1/554adeec-1b54-45db-a911-a7fb878d1820/image-1525800936.jpg"
.
Ответ №1:
Похоже, вы пытаетесь отправить как JSON
ответ на вызов API.
Я думаю, что смена вашего контроллера поможет получить этот формат.
Как обычно, он предоставит вам формат ниже.
{
"image_url": [
{ url: "/images/folder1/554adeec-1b54-45db-a911-a7fb878d1820/image-1525800936.jpg"},
{ url: "/images/folder1/554adeec-1b54-45db-a911-a7fb878d1820/image-1525800937.jpg"},
{ url: "/images/folder1/554adeec-1b54-45db-a911-a7fb878d1820/image-1525800938.jpg"}
]
}
Итак, самый простой способ, который я могу предложить, это
1. Добавьте метод в свою модель.
в контроллере при отправке ответа JSON.
render json: { data: model_name.merge(image_urls: image_urls.map(amp;:url)) }