Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/reporting-services/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Session 将类实例存储在会话服务器端w/Padrino?_Session_Web_Sinatra_Server Side_Padrino - Fatal编程技术网

Session 将类实例存储在会话服务器端w/Padrino?

Session 将类实例存储在会话服务器端w/Padrino?,session,web,sinatra,server-side,padrino,Session,Web,Sinatra,Server Side,Padrino,我有一个类,它在启动时从DB读取数据。我希望能够将其存储在会话中,但在尝试这样做时出现以下错误: 错误类型错误:没有为类互斥定义封送转储 我所做的可能/合理吗?如果是这样的话,我应该怎么做呢?如果没有,那么除了在会话中存储类实例,还有什么好的替代方法?目前,我的解决方法只是在需要使用它时实例化它,但我认为这不是一个好的解决方案,也不是一个能够扩展的解决方案。一个好的替代方法是在会话中存储记录的id。然后,当您再次需要该数据时,您可以使用助手从内存或数据库返回数据。一个完美的例子是在许多ruby认

我有一个类,它在启动时从DB读取数据。我希望能够将其存储在会话中,但在尝试这样做时出现以下错误: 错误类型错误:没有为类互斥定义封送转储
我所做的可能/合理吗?如果是这样的话,我应该怎么做呢?如果没有,那么除了在会话中存储类实例,还有什么好的替代方法?目前,我的解决方法只是在需要使用它时实例化它,但我认为这不是一个好的解决方案,也不是一个能够扩展的解决方案。

一个好的替代方法是在会话中存储记录的id。然后,当您再次需要该数据时,您可以使用助手从内存或数据库返回数据。一个完美的例子是在许多ruby认证宝石中发现的当前用户助手方法中使用的模式。如果发现这是一个瓶颈,您可以修改这个助手以使用缓存层,但我会在事后将其作为一个优化

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