Mongoid相当于ActiveRecord的`serialize`方法

时间:2011-08-18 19:04:51

标签: ruby ruby-on-rails-3 serialization mongodb mongoid

希望这个标题非常明显。

我正在使用mongoid作为Rails应用程序的ORM,我想知道是否有人知道它是否与ActiveRecord的serialize方法等效。我查看了mongoid文档,但还没有找到任何内容。

以下是该模型的一个示例:

class Foo
  include Mongoid::Document

  field :params, type: String
  serialize :params            # method from ActiveRecord
end

提前致谢!

2 个答案:

答案 0 :(得分:18)

只要您可以存储在数组和散列字段中,就不需要使用MongoDB进行序列化。

field :hash_params, type: Hash
field :array_params, type: Array

答案 1 :(得分:0)

有时您需要使用Value Object模式和与composition_of相同的函数,有些人希望将来弃用此函数,而不是希望使用标准活动记录的serialize。 Mongoid提供相同的功能来创建Value对象,避免使用serialize方法外观,您可以在此处提供自定义序列化http://mongoid.org/en/mongoid/docs/documents.html#custom_fields

class Foo
  include Mongoid::Document

  field :params, type: String
  field :custom_params , type: MyCustomParamsType
end