Лучший подход для сохранения изменений в формах с записями c динамов и поддержкой изображений - PullRequest
0 голосов
/ 06 мая 2020

Мне нужно знать, как лучше всего сохранять пользовательские изменения при редактировании анкет с поддержкой изображений.

Проблема

Есть сайт менеджера анкет, где Пользователь может создавать, редактировать и публиковать sh анкеты. Проблема в странице редактирования. В анкете может быть несколько вопросов, к вопросу может быть прикреплено изображение и несколько вариантов ответов. К каждому варианту ответа может быть прикреплено изображение.

Если в анкете вообще не было изображений, я мог бы просто отправить все данные анкеты на сервер, чтобы обновить их. Но поскольку у него есть несколько изображений с разными контекстами, я не вижу четкого подхода к этому.

Кроме того, изображения отправляются в корзину S3.

Текущий подход

Текущий реализованный подход делает следующее:

  • Когда пользователь выбирает файл изображения для ввода на странице, интерфейс сразу загружает изображение (без щелчков) на нужной кнопке сохранения).
  • Контроллер выгрузки в бэкенде просто отправляет изображение в корзину S3 и дает ключ изображения в ответе. Это означает, что в базе данных нет изменений, загруженное изображение не имеет отношения к анкете в бэкенде.
  • Передний конец получает ключ загруженного изображения и помещает его в ресурс, где он принадлежит, что является вопросом или вариантом ответа. Пользователь может сделать это несколько раз для разных вопросов и вариантов ответов.
  • Когда пользователь нажимает кнопку «Сохранить», все данные анкеты отправляются в серверную часть. Здесь ключ изображения представляет собой значение в таблице так же, как заголовок или любой другой атрибут из вопроса или варианта ответа.

Проблемы с текущим подходом

  • В корзине S3 могут быть изображения, которые не связаны ни с одной анкетой по таким причинам, как пользователь не сохранил после редактирования; пользователь загрузил другое изображение, заменяющее предыдущее. Чтобы обойти это, у меня может быть маршрут для удаления изображения, и интерфейс будет вызывать его при необходимости; или у меня могла бы быть работа по удалению изображений, на которые не было ссылок в системе. Оба решения с огромным fl aws.
  • И это просто не похоже на хороший подход.

Лучший подход

Какой подход лучше? Есть ли?

...