Как использовать js для установки URL-адреса изображения вместо загрузки несущей с помощью simple_form? - PullRequest
0 голосов
/ 08 июля 2019

Я хочу иметь 2 способа загрузки изображения в облачное хранилище: - или с carrierwave и simple_form (это работает нормально в одиночку)

```
<%= simple_form_for(@place) do |f| %>
          <%= f.input :name %>
          <%= f.input :address %>

          <%= f.input :image1 %>
          <%= f.input :image1_cache, as: :hidden %>
          <%= f.input :image2 %>
          <%= f.input :image2_cache, as: :hidden %>
          <%= f.input :image3 %>
          <%= f.input :image3_cache, as: :hidden %>
          <%= f.input :image4 %>
          <%= f.input :image4_cache, as: :hidden %>

          <%= f.submit "Create it!", class: "btn btn-primary mb-5" %>

```

- или из URL-адреса, который перехватывается благодаря вызову APIсделано в JS => это где я застрял ...

Как только у меня есть URL, я попытался захватить форму ввода изображения HTML и установить его значение для моего URL изображения (та же логика прекрасно работает длятекстовые поля, например:

const name = document.getElementById('place_name'); // this catch `f.input :name` field
name.value = place.name; // this set it to my value determined in JS

)

код, который я пробовал:

const imgLoader = document.getElementById(`place_image${index}`); // this catch the image uploader field
imgLoader.style.visibility = "hidden"; // this hide it to prevent the user to upload manually an image anymore (works fine)
imgLoader.value = url; // ERROR HERE

Но он не работает со следующим консольным сообщением: "SecurityError: Операция небезопасна. "

Другая идея заключается в добавлении данных url в мой запрос post_form_form, чтобы иметь возможность загружать их на стороне контроллера с помощью remote_image1_url, но я также не нашелузнать, как добавить некоторые данные параметров с помощью моего простого запроса на отправку ...

У кого-нибудь есть решение или другая идея?

Большое спасибо!

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