2010-07-22 62 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