Rails - Как назначить временный идентификатор сообщения ссылочным изображениям - PullRequest
0 голосов
/ 08 июня 2018

У меня есть простой блог-сайт, построенный на рельсах.У меня есть модель Post и модель Picture.

A Post has_many pictures и

A Picture belongs_to post

Ниже я хочу достичь -

  1. Когда я начну создавать новое сообщение, я предоставлю ссылку в форме, которая откроет новое окно, где я также могу загрузить несколько эталонных изображений с некоторым полем name.
  2. Затем я буду использовать строку макроса в своем теле сообщения, например ##IMG_<image-name>##.
  3. . Я буду динамически создавать новый тег <img> для отображения релевантных изображений, пока пользователь все еще создаетpost.

Мои проблемы -

  1. Как вы знаете, во время создания поста у меня не будет post_id.
  2. Тогда как мне связать загружаемую reference_images с конкретным сообщением?
  3. Можно ли как-то назначить временный идентификатор сообщению, как только я вхожу на страницу создания, а затем после сохранения сообщения, в любом случаерельсы захватят?

Надеюсь, вы попали туда, где я застрял.Пожалуйста помоги!

Заранее спасибо.

1 Ответ

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

Я ценю все ответы, которые вы дали.Но мне пришлось добиться этого еще одним хакерским способом для моих нужд -

HTML

  • Я предоставил <input type="file" id="refImg" onchange="javascript: uploadImage(this);">.
  • После того, как пользователь выбрал требуемое изображение, функция uploadImage() создаст динамическую форму и выполнит AJAX POST для отдельного API.http://example.com/uploadImage

Рельсы

  • В контроллере рельсов referenceImages#uploadImage я использовал скрепку для загрузки изображения в облачный каталог.В случае успешной загрузки облачный загрузочный вызов вернется с URL-адресом изображения.
  • Я ответил этим URL-адресом в формате JSON.

JS

  • В функции JavaScript uploadImage(), в функции успеха вызова ajax, я проанализировал URL-адрес из ответа, динамически создал тег <img src="parsed_image_url"> и добавил его к текущей позиции курсора в теле сообщения..
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...