他のレコードに「属する」レコードがたくさんあります。(異なるモデル、典型的な1-nの関係。)モデルでfindを呼び出して、関連付けに属していないすべてのモデルを見つけるにはどうすればよいですか?
何かのようなもの:
App.Thing = DS.Model.extend({
other: DS.belongsTo( 'App.Other' ),
someattr: DS.attr('string')
});
App.Thing.find({ other: null });
編集:
louiscoquioのソリューションは私にはうまくいきませんでした。だから私はコントローラーでフィルターできると思った。
これが私がそれをやろうとする方法です:
App.ThingsAsideController = Ember.ArrayController.extend({
unassigned: function() {
return this.filterProperty('other');
}.property('content.@each')
});
これは、フィルターをかけると問題なく機能しsomeattr
ますが、関係をフィルターすることはできません。
質問は次のとおりです。belongsToアソシエーションのプロパティ名は何ですか?
編集、うまくいくもの:
これは機能しますが、私は非常に不満です。
App.ThingsAsideController = Ember.ArrayController.extend({
unassigned: function() {
return this.filter(function(item, index, enumerable){
var belongsToOther = false;
var otherThings = App.OtherThing.find();
otherThings.forEach( function( otherThing ){
otherThing.get('things').forEach( function( otherThingThing ) {
if( otherThingThing.id === item.id ) {
belongsToOther = true;
}
});
});
return !belongsToOther;
});
ember-data sourceを読んでいますが、レコードのbelongs-toアソシエーションを照会する方法がわかりません。