在Rails中为用户会话存储大对象

时间:2014-05-13 14:28:34

标签: ruby-on-rails

我正在使用Google API客户端gem来返回数据,然后将其包装在一个对象中。我想在会话之间使用这些数据。我该如何存放?我一开始以为我可以将它序列化,然后把它放到一个表中,但遇到了它放弃的对象类型的问题。实际上此后我认为将我需要的数据放入哈希数组(例如,对于youtube视频 - 标题,内容,缩略图等)更为简洁,所以我提取了我需要的东西并完成了。现在,我有一个数组 - 我应该将它存储在用户的数据库中,还是应该将它放入会话var中? Session var似乎更容易,不需要创建额外的表等,但这是否意味着它将存储为cookie?那么可能是一个相当大的饼干。无论如何建议在这里将非常感激。

1 个答案:

答案 0 :(得分:0)

首先,使用数据库存储:使用ActiveRecord,您只需存储JSON即可。因此,如果您的对象可以正确序列化,那么将它存储在DB中没有问题。只需将此行添加到您的模型中:

serialize :data, JSON.

尽管如此,我认为你可以完美地使用session var来达到这个目的。默认情况下,是的,它将存储为cookie - 但如果您认为它的信息太多,您可以将rails配置为使用服务器端存储。