Связь записи с еще не существующей записью

22 views
Skip to first unread message

Railman

unread,
Feb 3, 2012, 5:31:33 AM2/3/12
to RubyOnRails to russian
Предположим, в форме создания товара вы можете прикреплять к товару
фотки и тут же видеть список прикрепленных фотографий. Но, так как
запись товара еще не существует, загруженные фотки ни к чему не
привязаны.

Как привязывать фотки товара после отправки формы товара? Делать
скрытые поля с идентификаторами фоток?

Как вы решаете подобные задачи? Есть ли общий подход для этого?

Alexander Korkin

unread,
Feb 3, 2012, 5:38:09 AM2/3/12
to ror...@googlegroups.com
Делаешь пустую (дефолтную) запись товара, помечаешь ее драфт.
Далее фотки уже цепляешь к ней.

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

3 февраля 2012 г. 17:31 пользователь Railman <deme...@gmail.com> написал:

--
--
Данное сообщение отправлено Вам, так как Вы являетесь подписчиком группы "RubyOnRails to russian" на группах Google.
FAQ группы находится по адресу: http://ru.wikibooks.org/wiki/RubyFAQ

 Для того, чтобы отправить сообщение в эту группу, пошлите его по адресу
ror...@googlegroups.com
 Чтобы отменить подписку на эту группу, отправьте сообщение по адресу: ror2ru-un...@googlegroups.com
 Дополнительные варианты находятся на странице группы http://groups.google.com/group/ror2ru?hl=ru



--
Korkin Aleksandr
Russia, Omsk
web-developer
mailto:av.k...@gmail.com
skype: sany_pioner
icq: 126173814

Андрей

unread,
Feb 3, 2012, 5:42:42 AM2/3/12
to ror...@googlegroups.com
Вы предлагаете при показе формы создавать запись в таблицы немедленно? А как же быть в этом случае с валидацией, не говоря уже про колонки not null у таблицы. По-моему, так больше проблем получишь, чем пользы.

Alexander Korkin

unread,
Feb 3, 2012, 5:48:22 AM2/3/12
to ror...@googlegroups.com
 Эммм... ну если у вас есть толстая модель товара, которая описывает все его свойства... то тут конечно, нужно нормализацией заняться.
А предположим товар имеет только идентификатор, через который цепляются свойства, картинки итп. То, что мне мешает создать только идентификатор и протаскивать его куда угодно.

3 февраля 2012 г. 17:42 пользователь Андрей <deme...@gmail.com> написал:
Вы предлагаете при показе формы создавать запись в таблицы немедленно? А как же быть в этом случае с валидацией, не говоря уже про колонки not null у таблицы. По-моему, так больше проблем получишь, чем пользы.

--
--
Данное сообщение отправлено Вам, так как Вы являетесь подписчиком группы "RubyOnRails to russian" на группах Google.
FAQ группы находится по адресу: http://ru.wikibooks.org/wiki/RubyFAQ
 
Для того, чтобы отправить сообщение в эту группу, пошлите его по адресу
ror...@googlegroups.com
Чтобы отменить подписку на эту группу, отправьте сообщение по адресу: ror2ru-un...@googlegroups.com
Дополнительные варианты находятся на странице группы http://groups.google.com/group/ror2ru?hl=ru

Андрей

unread,
Feb 3, 2012, 6:05:34 AM2/3/12
to ror...@googlegroups.com
В таком случае да, но модель товара я привёл только как пример.

Vladimir Chernyshev

unread,
Feb 3, 2012, 7:37:52 AM2/3/12
to ror...@googlegroups.com
Если правильно понял задачу, есть форма описания товара с полями для
загрузки фоток и хочется что-то типа превью карточки товара с фотками
ещё до отправки формы?

Делаю так. Фотки загружаю аяксом на сервер во временный каталог
/images/upload/tmp, получаю их id, добавляю <img
src="/images/upload/tmp/<id>"> в превью и скрытое поле формы с id.
Потом отправляю форму вместе с id. Если всё ок, то создаю запись
товара с id фоток (из скрытых полей), а их перемещаю с
/images/upload/tmp в /images/upload. Раз в сутки скрипт по хрону
чистит
/images/upload/tmp от файлов с датой создания больше недели. Раньше
tmp не было и просто дергал из базы все id и удалял файлы, которых в
базе нет, но когда фоток стало много - стал не хило грузить систему.

3 февраля 2012 г. 14:31 пользователь Railman <deme...@gmail.com> написал:

Андрей

unread,
Feb 3, 2012, 8:40:28 AM2/3/12
to ror...@googlegroups.com
Я тоже решил это сделать скрытыми полями, а потом в контроллере привязывать к нужной модели. Для этого сделал удобный метод: https://github.com/tanraya/imperavi-rails/blob/master/lib/imperavi-rails/controller_methods.rb
Reply all
Reply to author
Forward
0 new messages