2010-07-22 86 views
0

是否有一種簡單的方法來獲取Mongoid文檔的所有屬性,包括嵌入文檔的屬性?Mongoid - 獲取所有屬性,包括嵌入文檔

舉例來說,如果我有以下文件:

class Person 
    include Mongoid::Document 
    embeds_many :phone_numbers 
    field :name 
end 

class PhoneNumner 
    include Mongoid::Document 
    embedded_in :person, :inverse_of => :phone_numbers 
    field :number 
end 

我想獲得一個Person的屬性和電話號碼如下:

{ :name => "Jenny", :phone_numbers => [{ :number => '867-5309' }, { :number => '867-5309' }] } 

回答

5

由於嵌入式文件實際上只是父文檔上的其他屬性,你可以像這樣得到它們:

person = Person.create 
person.phone_numbers.create(:number => "123-456-7890") 
person.attributes 
# => {"_id"=>"4c48ff26f7e2da3704000001", 
# "phone_numbers"=> 
#  [{"number"=>"123-456-7890", "_id"=>"4c48ff26f7e2da3704000002"}]} 
+0

沒錯。我在一個沒有這個功能的舊版本的Mongoid上。謝謝。 – nicholaides 2010-07-28 21:43:28