Я пытаюсь привлечь участников к нескольким целевым аудиториям, связанным с проверкой, и когда я просматриваю конкретное сканирование, это показывает мне, что участник подсчитывает отношение к целевой аудитории из всех сканирований вместо этого участник подсчитывает отношение к целевой аудитории этого конкретного сканирования.Проблемы с множественными отношениями в одной модели
У меня есть следующие модели:
- сканы
- участников
- targetAudience
- scanParticipants (Делает связь между «сканирование», «участник» & «targetAudience», он также имеет некоторые дополнительные данные [сводная таблица, это то, что они называют это i)]
scan.js модель:
import DS from 'ember-data';
var scanModel = DS.Model.extend({
targetAudiences: DS.hasMany('targetAudiences', {async: true}),
scanParticipants: DS.hasMany('scanParticipants', {async: true}),
participants: Ember.computed('[email protected]', function() {
return this.get('scanParticipants').then(function (scanParticipants) {
return scanParticipants.mapBy('participant');
})
}),
participantsCount: Ember.computed('scanParticipants.[]', function() {
return this.get('scanParticipants.length');
}),
participantsCountFinished: Ember.computed('scanParticipants.[]', function() {
return this.get('scanParticipants').filterBy('finished', true).get('length');
}),
});
export default scanModel;
целевой audience.js модель:
import DS from 'ember-data';
var targetAudienceModel = DS.Model.extend({
scanParticipants: DS.hasMany('scanParticipants', {async: true}),
participants: Ember.computed('scanParticipan[email protected]', function() {
return this.get('scanParticipants').then(function (scanParticipants) {
return scanParticipants.mapBy('participant');
})
}),
participantsCount: Ember.computed('scanParticipants.[]', function() {
return this.get('scanParticipants.length');
}),
participantsCountFinished: Ember.computed('scanParticipants.[]', function() {
return this.get('scanParticipants').filterBy('finished', true).get('length');
}),
});
export default targetAudienceModel;
скан-участник.js модель:
импорт DS из 'ember-data';
var scanParticipantModel = DS.Model.extend({
finished: DS.attr('boolean'),
scan: DS.belongsTo('scan', {async: true}),
participant: DS.belongsTo('participant', {async: true}),
targetAudience: DS.belongsTo('targetAudience', {async: true})
});
export default scanParticipantModel;
Если я иду к определенному ScanGroup он показывает мне список сканирования этого ScanGroup и работает отличный пример:
URL scangroup/1
:
- сканирования 1 (сосчитать Участники: 14, участники закончили: 8)
- scan 2 (Количество участников: 14, участники завершены: 4)
Теперь, когда я иду к конкретной проверке я хочу показать статистику каждого targetAudience, который принадлежит к сканированию я выбираю пример:
URL scangroup/1/scan/2
:
- targetAudience 1 (количество участников: 4, участники закончили: 1)
- targetAudience 2 (кол-участников: 2, участники закончили: 1)
- targetAudience 3 (кол-участников: 4, участники закончили: 0)
- targetAudience 4 (участники кол-во: 4, участники закончили: 2)
Но статистика, что я получаю, когда я смотрю на этой конкретной проверки (2) является:
- targetAudience 1 (количество участников: 8, участники законченный : 3)
- targetAudience 2 (количество участников: 4, участники закончили: 4)
- targetAudience 3 (кол-участников: 8, участники закончили: 1)
- targetAudience 4 (количество участников: 8, участники закончили: 4)
Как я могу сделать возможным, чтобы, когда я смотрю на сканирование 2, он показывает только количество участников, связанных с этой целью. Аудитория сканирования 2?
Я просто не могу понять это, я уже 3 дня пробовал все, но кажется, что это невозможно.
Я использую:
- Ember 2.1.0 данных
- Эмбер 2.1.0
Спасибо заранее!
Незлые С уважением,
Pascal