Rails - Как мне временно сохранить экземпляр модели rails? - PullRequest
1 голос
/ 26 апреля 2011

У меня есть экземпляр модели rails, который необходимо сохранять между запросами без сохранения в базе данных.

Небольшое приложение, над которым я работаю, позволяет клиентам использовать форму для редактирования параметров экземпляра, отправки формы обратно на сервер и просмотра предварительного просмотра их изменений.Только когда нажата кнопка SAVE, данные экземпляра могут быть обновлены в базе данных.

Я рассматривал возможность сохранения этих данных в сеансе, но некоторые данные экземпляра могут быть тяжелыми - например, длинные полностраничные HTML-строки,Сериализованные объекты BERT и т. Д.

Как лучше всего это сделать?Если есть общий метод для этого, я был бы рад услышать это.

БОЛЬШЕ ДЕТАЛЕЙ

Как правило, в такой ситуации нет необходимости сохранять данные между запросами, поскольку данные формы будут следовать за нами от запроса к запросу.

Однако в этой ситуации у нас есть iframe, который используется для предварительного просмотра недавно обновленных данных.Данные должны быть сохранены .. каким-то образом .. чтобы iframe мог получить их из отдельного запроса к серверу.

Ответы [ 2 ]

1 голос
/ 26 апреля 2011

Как правило, вы не должны этого делать: если вы хотите повысить эффективность своего приложения, рассмотрите возможность кэширования соответствующих данных с использованием хранилища, такого как memcached / memcache-client. Не используйте сеанс.

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

0 голосов
/ 26 апреля 2011

Либо сохраните его в сеансе, либо поместите все значения в скрытые поля на странице предварительного просмотра.Используйте хранилище сеансов ActiveRecord, которое сериализует данные сеанса в таблицу в базе данных, а не хранит их в памяти или помещает их в файл cookie (который, вероятно, сразу потерпит неудачу из-за ограничений длины файла).

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