3

我怎么会做这样的事情?我希望能够将 params 对象存储到模型的字符串属性中,并能够再次将其反序列化为 params 哈希对象,我将如何在 ruby​​ 中做到这一点?还是在rails中有开箱即用的解决方案?

4

2 回答 2

7

Active Record 可以使用 YAML 序列化文本列中的任何对象。为此,您必须通过调用类方法序列化来指定它。这使得在不做任何额外工作的情况下存储数组、散列和其他不可映射的对象成为可能。

class User < ActiveRecord::Base
  serialize :preferences
end

user = User.create(preferences: {background: "black", display: "large"})
User.find(user.id).preferences 
# => {background: "black", display: "large"}
于 2013-06-25T13:36:13.703 回答
0

Mori 的回答是正确的,但是如果模型中的数据类型确实是字符串,它可能不适合。建议你改用文字。

于 2013-06-25T14:38:21.243 回答