Mik*_*e A 1 ruby activerecord ruby-on-rails
我有一个模型,有大约10个属性,我希望JSON在我的数据库中序列化.
有办法吗?
serialize attribute1, JSON
// ...
serialize attribute10, JSON
Run Code Online (Sandbox Code Playgroud)
一行?因为serialize [attribute1, ..., attribute10], JSON不起作用.
谢谢!
根据您在这里尝试做的事情,您可能实际上更适合商店:
store :settings, accessors: :attr1, :attr2, :attr3
Run Code Online (Sandbox Code Playgroud)
Rails将使用单个列来存储(和序列化)多个属性,并且它将为每个属性定义访问器,因此您仍然可以像访问单个列一样访问它们.
我提出这个的原因是因为你在数据库中使用单独的列来获得任何额外的价值是相对不太可能的,因为大多数关系数据库都不会对它做任何特殊的事情.您的应用程序效率更高,并且在添加需要类似处理的其他项时,您不必继续向数据库添加列.
我使用此模式存储与用户相关的社交网址.当下一个网络出现时,我只需添加一个存取器和一个表单字段,我们就设置了,不需要迁移.
顺便说一句,Rails 4还支持指定使用的编码器.即:
store :settings, accessors: [ :attr1, :attr2, :attr3 ], coder: JSON
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2651 次 |
| 最近记录: |