Ruby on rails Rails-如何临时存储Rails模型实例?

Ruby on rails Rails-如何临时存储Rails模型实例?,ruby-on-rails,session,Ruby On Rails,Session,我有一个rails模型实例,需要在请求之间持久化,而不保存到数据库中 我正在使用的小应用程序允许客户使用表单编辑实例参数,将表单提交回服务器,然后查看他们所做更改的预览。只有按下保存按钮,才能更新数据库中的实例数据 我曾考虑将这些数据存储在会话中,但一些实例数据可能很重,例如长的整页html字符串、BERT序列化对象等 最好的办法是什么?如果有一个通用的方法,我很高兴听到它 更多细节 一般来说,在这种情况下,不需要在请求之间持久化数据,因为表单数据会在请求之间跟随我们 但是,在这种情况下,我们有

我有一个rails模型实例,需要在请求之间持久化,而不保存到数据库中

我正在使用的小应用程序允许客户使用表单编辑实例参数,将表单提交回服务器,然后查看他们所做更改的预览。只有按下保存按钮,才能更新数据库中的实例数据

我曾考虑将这些数据存储在会话中,但一些实例数据可能很重,例如长的整页html字符串、BERT序列化对象等

最好的办法是什么?如果有一个通用的方法,我很高兴听到它

更多细节 一般来说,在这种情况下,不需要在请求之间持久化数据,因为表单数据会在请求之间跟随我们


但是,在这种情况下,我们有一个iframe用于预览最近更新的数据。数据需要持久化。。以某种方式这样iframe就可以从单独的服务器请求中获取它
在本例中,您甚至不需要存储数据,因为表单每次都应该将数据全部传回?您可以使用表单中的数据生成预览动作,然后再将窗体重新显示出来。

一般不应该这样做:如果您想使应用程序更高效,那么可以考虑使用类似于MyCask/MeMax缓存的商店缓存相关数据。不要使用会话


在本例中,您甚至不需要存储数据,因为表单每次都应该将数据全部传回?您可以让预览操作使用表单中的数据生成新对象,然后再次渲染表单。

将其存储在会话中,或者将所有值放在预览页面的隐藏字段中。使用ActiveRecord会话存储,将会话数据序列化到数据库中的一个表中,而不是将其保存在内存中,或将其放入cookie中(由于cookie长度限制,可能会完全失败)。

将其存储在会话中,或将所有值放在预览页面的隐藏字段中。使用ActiveRecord会话存储,它将会话数据序列化到数据库中的一个表中,而不是将其保存在内存中,或将其放入cookie中(由于cookie长度限制,这可能会彻底失败)。

我刚刚用更相关的详细信息更新了问题。我大体上同意你的观点,持久性通常是不需要的,但我们有一个独特的要求,对吧?那么你是在搞“无状态”范式,允许用户对同一数据同时拥有两个视图?实际上,我会继续并将其保存到数据库中,以某种方式标记为“不完整”,然后使用cron启动清理rake任务,删除超过24小时的不完整记录或类似的内容。嘿,Max,完全正确。这是个好建议。希望有一个更干净的方法来处理这个问题。我想我可能会切换到activerecord会话存储,将临时实例属性序列化到一个对象中,并将其推送到会话表中……我刚刚用更相关的细节更新了这个问题。我大体上同意你的观点,持久性通常是不需要的,但我们有一个独特的要求,对吧?那么你是在搞“无状态”范式,允许用户对同一数据同时拥有两个视图?实际上,我会继续并将其保存到数据库中,以某种方式标记为“不完整”,然后使用cron启动清理rake任务,删除超过24小时的不完整记录或类似的内容。嘿,Max,完全正确。这是个好建议。希望有一个更干净的方法来处理这个问题。我想我可能会切换activerecord会话存储,将临时实例属性序列化到一个对象中,并将其推送到会话表中……activerecord存储可能是一个很好的解决方案。在这种情况下,隐藏字段没有帮助,因为iframe需要向服务器发出请求并检索临时保存的数据。ActiveRecord存储可能是一个很好的解决方案。在这种情况下,隐藏字段没有帮助,因为iframe需要向服务器发出请求并检索临时保存的数据。