【问题标题】:Mongoid equivalent of ActiveRecord's `serialize` method相当于 ActiveRecord 的 `serialize` 方法的 Mongoid
【发布时间】:2011-08-18 19:04:50
【问题描述】:

希望标题是不言自明的。

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

以下是模型示例:

class Foo
  include Mongoid::Document

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

提前致谢!

【问题讨论】:

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


    【解决方案1】:

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

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

    【讨论】:

    • 非常感谢——不敢相信我忘记了这一点(仍然习惯于 sql)。只要 stackoverflow 允许,我就会接受你的回答。
    【解决方案2】:

    有时您需要使用值对象模式和类似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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-10-22
      • 2013-05-13
      • 2020-01-18
      • 2011-05-02
      • 1970-01-01
      相关资源
      最近更新 更多