Как получить эти URL-адреса из carrierwave после успешной загрузки нескольких изображений и форматирования, как показано ниже? - PullRequest
1 голос
/ 09 марта 2019
{
    "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 Ответ

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

Похоже, вы пытаетесь отправить как 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(&:url)) }

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