Как в rails создать запись, если зависящая от неё запись ещё не сохранена и нет id?

Столкнулся с забавной проблемой.
К примеру есть посты, у поста может быть много картинок через has_many.
Картинки загружаю ajax и если пост уже создан то нет никаких проблем, отослать id поста, создать картинку и привязать её к посту. (редактирование)

Проблема возникает когда хочу создать новый пост, где собственно нет id так как модель не сохранена. И получается привязать картинку пока никуда не могу так как нет id.

Картинки загружаю ajax чтобы их сразу можно было вставлять в создаваемый пост.

Есть какие то соображения в какую сторону копать? Или я вообще не правильный подход сделал?
Делать nested_forms и сохранять картинки вместе с постом не вариант - нужно именно при написании поста, загрузить новую картинку в один клик и вставить в пост.
  • Вопрос задан
  • 2617 просмотров
Решения вопроса 3
AMar4enko
@AMar4enko
Вы можете создать эти картинки без указания владельца, вернуть их ID в качестве результата ajax-запроса и сохранить эти ID в форме. При сохранении поста смотрите, какие ID картинок у вас вместе с формой пришли и им после сохранения поста проставляете ID владельца.
Ответ написан
@vsuhachev
Мой способ - при создании формы генерирую случайный uuid в hidden-поле, и его же передаю в ajax-загрузку картинок. Если форма отправлена, то по этому uuid ищу картинки и привязываю их к объекту. Ну и задачу в крон поставить для очистки не привязанных картинок
Ответ написан
FanKiLL
@FanKiLL Автор вопроса
Всем спасибо за ответы. Оба варианта хороши, но я сделал через сессию - залитые id картинок храню в сессии и потом при сохранение поста - прохожусь по загруженным картинкам и выставляю id поста.

Если юзер зальёт картинки и не станет продолжать создание поста, как предложил @vsuhachev такие картинки будут чистится кроном.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы