如何使用 Sequel 和 Ruby 序列化数据?
我有一个表,应该存储 id、名称和哈希值。如何序列化哈希值? (我使用 Ruby 和 Sequel 作为 ORM。)
I have a table which should store an id, a name and a hash. How do I serialize the Hash? (I'm using Ruby and Sequel as ORM.)
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
如果您使用的是 Sequel::Model,则 序列化插件< /a> 应该可以解决问题。
If you're using Sequel::Model, the Serialization plugin should do the trick.
您似乎已经找到了足够的答案,但我想我应该用通用的 Ruby 方式来参与。
我使用它来序列化 Ruby 对象(例如跨 JSON 和数据库),您会发现 Rails 中的 cookie 会话以相同的方式对会话哈希进行编码。使用它从浏览器 cookie 调试会话内容通常很方便。
You seem to have found a sufficient answer but I thought I'd chip in with a general-purpose Ruby way.
I use this to serialize Ruby objects (e.g. across JSON and to the DB), and you'll find that cookie sessions in Rails encode the session hash in the same way. It's often handy to debug the session contents from a browser cookie using this.
如果您正在寻找 JSON-API 合规性,我很幸运 JSONAPI::Serializers。您需要传入
:skip_collection_check
选项,为了提高性能,您应该 1) 传入结果集,而不是数据集,2) 在序列化之前急切加载关系(如果您要旁加载数据)。If you're looking for JSON-API compliance, I've had good luck with JSONAPI::Serializers. You will need to pass in the
:skip_collection_check
option, and for performance you should 1) pass in resultsets, not datasets, and 2) eager-load relationships before serializing (if you're sideloading data).您可以尝试一下 YAML:
您可以将其存储在 Sequel 字符串中,它适用于复杂的对象,并且在数据库中可读。我在此处读到了它。
You may give YAML a try:
You can store it in a Sequel String, it works with complex objects, and it is readable in the DB. I read about it here.