このアプリでは、インシデントは起こったことであり、フィーリングはネストされたオブジェクトであり、それについてどのように感じたかを説明します。これが私のインシデントモデルです:
window.Incident = Backbone.RelationalModel.extend({
urlRoot: "/incidents",
idAttribute: "_id",
relations:[{
type: Backbone.HasMany,
key: 'feelings',
relatedModel: 'Feeling',
reverseRelation: {
key: 'incident',
includeInJSON: '_id'
}
},
{
type: Backbone.HasMany,
key: 'thoughts',
relatedModel: 'window.Thought',
reverseRelation: {
key: 'incident',
includeInJSON: '_id'
}
}],
// rest of model...
});
そして、ここにフィーリングモデルがあります:
window.Feeling = Backbone.RelationalModel.extend({
urlRoot: '/incidents',
idAttribute: '_id'
});
この時点で、インシデントと感情を CRUD できます。しかし、感情には逆の関係が割り当てられていません。ある意味では、属性「インシデント」には値「null」が与えられます。私の MongoDB コレクションでは、次の 2 つの無関係なオブジェクトを取得します。
{ "description" : "I feel sad", "_id" : ObjectId("50d3b1462ff17f07cf000002") }
{ "name" : "asdf", "intensityBefore" : "asdf", "intensityAfter" : "asdf", "incident" : null, "_id" : ObjectId("50d3b14e2ff17f07cf000003") }
https://github.com/mhurwi/cbt-app/tree/relationalに完全なプロジェクトがあります。
このアプリは Christophe Coenraets によるスターター アプリから構築されていることに注意してください: https://github.com/ccoenraets/nodecellar
何時間も経ちましたが、バックボーンリレーショナルによって関係が設定されていない理由がわかりません。