Rails 3 序列化

Posted

技术标签:

【中文标题】Rails 3 序列化【英文标题】:Rails 3 Serialize 【发布时间】:2011-04-19 14:13:28 【问题描述】:

我正在学习如何在 Rails 3 中序列化数据...

我想学的东西:

A.序列化数据是什么样的(例如 photo_id: 123123, photo_name: "Blah) 乙。如何在 Rails 3 中序列化数据 C.鉴于上述情况,如何提取序列化数据以执行类似 mydate.photo_id 的操作。

谢谢!

【问题讨论】:

【参考方案1】:

ActiveRecord 有这个内置:http://api.rubyonrails.org/classes/ActiveRecord/Base.html#method-c-serialize

如果您在模型中指定属性是序列化的,那么 AR 会透明地处理序列化/反序列化。当您调用访问器时,它会即时反序列化并返回 Ruby 对象(散列、数组等)。然后你可以像往常一样修改对象,当你保存记录时,它会重新序列化并存储它。

【讨论】:

序列化数据或使用 JSON(如 couchDB?)更好? 取决于你对更好的定义。 AR 序列化当然更容易使用。但是,如果您需要在应用程序之外使用数据(例如通过您可能构建的 API),那么最好使用 JSON 序列化自己,因为您的 API 用户比 YAML 更可能知道如何处理它。

以上是关于Rails 3 序列化的主要内容,如果未能解决你的问题,请参考以下文章

Rails 的 ActiveRecord 序列化:attr 方法给出“缺少类或模块错误”

如何将AngularJS $资源中的params序列化为rails 3.2兼容的参数

Rails 3 应用程序/用户设置最佳实践?

如何在表单中编辑 Rails 序列化字段?

在 Ruby on Rails 3.2.14 / Ruby 2.0.0 / PostgreSQL 9.2.4 中使用 activerecord 从序列中检索 nextval

Rails 中字段的自定义序列化