gpt4 book ai didi

ruby-on-rails - 在一个声明中使用 ActiveRecord 序列化多个属性?

转载 作者:太空宇宙 更新时间:2023-11-03 17:11:21 25 4
gpt4 key购买 nike

我有一个包含大约 10 个属性的模型,我希望在我的数据库中将其序列化为 JSON

有什么办法可以做到:

serialize attribute1, JSON
// ...
serialize attribute10, JSON

在一行中?因为 serialize [attribute1, ..., attribute10], JSON 不起作用。

谢谢!

最佳答案

根据您想在这里做的事情,您实际上可能更适合 store :

store :settings, accessors: :attr1, :attr2, :attr3

Rails 将使用单个列来存储(和序列化)多个属性,并且它将为每个属性定义访问器,因此您仍然可以像访问单独的列一样访问它们。

我提出这个建议的原因是,你不太可能通过在数据库中使用单独的列来获得任何额外的值(value),因为大多数关系数据库不会对它做任何特殊的事情。您的应用程序效率更高,并且当您添加另一个需要类似处理的项目时,您不必继续向数据库添加列。

我使用此模式来存储与用户相关的社交网址。当下一个网络出现时,我只需添加一个访问器和一个表单字段即可,无需迁移。


顺便说一句,Rails 4 也支持指定使用的编码器。即:

store :settings, accessors: [ :attr1, :attr2, :attr3 ], coder: JSON

关于ruby-on-rails - 在一个声明中使用 ActiveRecord 序列化多个属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17096766/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com