J'utilise actuellement Mongomapper dans un projet Padrino où j'importe des données à partir d'une source externe. L'objet principal (Application
) a deux types de documents associés, Activity
et Notice
.
Cependant, j'aimerais spécifier moi-même la clé étrangère, plutôt que d'utiliser l'ID Mongo interne, car la clé étrangère se trouve dans l'exportation de données, que j'importe via une tâche de râteau.
J'ai essayé un EmbeddedDocument
, mais cela pose des problèmes car je dois supprimer toutes les données associées, plutôt que de les mettre à jour, ce qui n'est pas idéal.
J'ai essayé ce qui suit, mais sans aucune chance:
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
Des idées où je me trompe?
Réponses:
4 pour la réponse № 1MongoMappers "s Documentation des associations est un peu léger à ce sujet, mais il y a un exemple à trouver dans le test_associations Test fonctionnel. le :foreign_key
la définition doit être spécifiée sur many
au lieu de belongs_to
.