1

我目前正在从外部源导入数据的 Padrino 项目中使用 Mongomapper。主对象 ( Application) 有两个关联的文档类型,ActivityNotice.

但是,我想自己指定外键,而不是使用内部的 Mongo ID,因为外键在数据导出中,我通过 rake 任务导入。

我试过了EmbeddedDocument,但这会导致问题,因为我必须删除所有关联的数据,而不是更新它,这并不理想。

我尝试了以下方法,但没有任何运气:

class Application
  include MongoMapper::Document
  ensure_index [[:latlng, '2d']]

  key :refval, String
  key :pkeyval, String
  key :applicantname, String
  key :latlng, Array
  key :address, String
  key :occupier, String
  key :type, String
  key :casetype, String
  key :tradingname, String
  key :closingdate, Date
  key :recieveddate, Date
  key :details, String
  key :usetype, String
  key :status, String
  key :validfrom, Date
  timestamps!

  many :activities
  many :notices  
end

class Activity
  include MongoMapper::Document

  key :keyval, String
  key :pkeyval, String
  key :type, String  
  key :cycle, String
  key :open, String
  key :close, String

  belongs_to :application, :foreign_key => :pkeyval
end

class Notice
  include MongoMapper::Document

  key :keyval, String
  key :pkeyval, String
  key :recieveddate, Date
  key :startdate, Date
  key :enddate, Date
  key :days, String  
  key :hours, String
  key :activities, Array

  belongs_to :application, :foreign_key => :pkeyval
end

有什么想法我哪里出错了吗?

4

1 回答 1

4

MongoMappers 的Associations 文档对此有点轻描淡写,但在test_associations功能测试中可以找到一个示例。该:foreign_key定义应指定为 onmany而不是belongs_to

于 2012-08-29T21:11:00.450 回答