1

私は現在、外部ソースからデータをインポートしている Padrino プロジェクト内で Mongomapper を使用しています。メイン オブジェクト ( ) には、とApplicationの 2 つのドキュメント タイプが関連付けられています。ActivityNotice

ただし、外部キーは rake タスクを介してインポートするデータ エクスポートにあるため、内部 Mongo ID を使用するのではなく、自分で外部キーを指定したいと思います。

を試しました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定義はmanyではなくon で指定する必要がありますbelongs_to

于 2012-08-29T21:11:00.450 に答える