2011-06-05 18 views
0

獲取以下MongoMapper文檔。添加到MongoMapper的現有EmbeddedDocuments中

class Schedule 
    include MongoMapper::Document 

    key :name, String 
    key :description, String 
    key :active, Boolean 

    many :periods 

    timestamps! 
    userstamps! 
end 

class Period 
    include MongoMapper::EmbeddedDocument 

    key :number, Integer 
    key :descriptor, String 
    key :begin, Time 
    key :end, Time 
end 

此外,採取以下帕德里諾路由。

post :period, :map => '/schedule/period' do 
    s = Schedule.first(params[:id]) 
    s.periods = [ 
    :number => 1, 
    :descriptor => "This is a description.", 
    :begin => Time.now, 
    :end => Time.now 
    ] 
end 

但是,如果我已經有了計劃內的幾個periods,不會我只是將覆蓋現有periods?我怎樣才能避免這種情況?

回答

1

唉,關聯方法尚未在mongomapper.com上記錄。但是......

使用毗連運算符,這是在協會定義:

s.periods << { 
    :number => 1, 
    :descriptor => "This is a description.", 
    :begin => Time.now, 
    :end => Time.now 
} 

你可以把它無論是哈希或文檔。

+0

啊!正是我在找什麼!謝謝! – 2011-06-06 15:49:43