在Padrino的会话服务器端存储类实例?

时间:2013-06-25 18:21:11

标签: session web sinatra server-side padrino

我有一个在启动时从数据库读取的类。我宁愿能够将它存储在会话中,但是在尝试这样做时我收到以下错误: ERROR TypeError:没有为类Mutex定义marshal_dump 我正在做什么/合理?如果是这样我应该怎么做呢?如果没有,什么是在会话中存储类实例的好方法?目前我的解决方法是在我需要使用它时实例化它,但这不会让我成为一个好的解决方案或能够扩展的解决方案。

1 个答案:

答案 0 :(得分:1)

一个好的选择是在会话中存储记录的id。然后,当您再次需要该数据时,您将使用帮助程序从内存或数据库返回数据。一个完美的例子是在许多ruby身份验证gem中找到的current_user helper方法中使用的模式。如果您发现它是瓶颈,您可以修改此帮助程序以使用缓存层,但我会在事后将其保留为优化。

必须将对象转换为在会话中愉快地生活的编组格式的问题,存在存储空间,陈旧数据以及可能无意中暴露于机密数据的问题。