0

取以下 MongoMapper 文档。

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

此外,采取以下 Padrino 路线。

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吗?我怎样才能避免这种情况?

4

1 回答 1

1

唉,mongomapper.com 上还没有记录关联方法。但...

使用在关联上定义的 concat 运算符:

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

您可以将其交给哈希或文档。

于 2011-06-06T12:55:28.450 回答