Mongoid如何将嵌套属性转换为对象?

时间:2013-12-03 21:32:45

标签: ruby mongodb mongoid

我在架构中有MongoDB集合,如

deal
    - id
    - locations
        [ 
            {city: A, zip: 111}
            {city: B, zip: 222}
            {city: C, zip: 333}
        ]

我使用Mongoid与MongoDB进行交互。

  class Deal
     include Mongoid::Document
     store_in collection: :deals
      ...
  end

使用Deal.find('xxx')我可以获得一个对象d。我可以使用像d.id和d.locations这样的格式。但是,d.locations [0]是一个Hash对象。我只能使用格式d.locations [0] [:city]而不是首选的d.locations [0] .city。 我如何实现这一目标?

1 个答案:

答案 0 :(得分:0)

您可以定义一个嵌入对象中的新mongoid对象

  class Deal
     include Mongoid::Document
     embeds_many :locations
      ...
  end

  class Location
    include Mongoid::Document
    embedded_in :deal
    field :city, :zip
  end