0

Я использую ember с рельсами и active_model_serializers.Как сделать ember, rails и active_model_serializers выполнить один запрос по hasMany отношениям?

Допустим, у меня есть модель под названием report, и у нее много статистики. Допустим, что в одном отчете есть статистика 2000 года. Когда я звоню:

report.get('statistics').then(statistics => { 
    //Do something 
}); 

Я получаю 2000 отдельных вызовов api для статистики и 2000 отдельных выборок из моего db.

Когда я добавляю include:['statistics'] к методу контроллера так:

def show 
    render json: @report, include:['statistics'] 
end 

я получаю один и тот же вопрос.

Я не уверен, есть ли что-то, что я должен сделать для файла ReportSerializer.rb, чтобы включить один запрос в качестве противопоставления для отношения комментариев к 2000.

В приложении с рельсами только вызов моей ассоциации генерирует один запрос. И хотя я понимаю, что эмбер не рельсы, я полагаю, что мне не хватает чего-то простого.

Итак, как мне получить доступ к ассоциации на моей модели, сгенерируйте один вызов api и один запрос? Или, по крайней мере, минимизировать количество вызовов и запросов api?

Добавлена ​​информация

Всего связанные статистические данные необходимы, так операция может быть сделана в отчете.

ответ

0

Мне не удалось найти способ для данных ember и моего рельса backend для создания одного запроса и одного вызова api для получения ассоциаций модели. Поэтому я создал еще один метод в контроллере отчетов, который занимается только отправкой ассоциации.

def include_statistics 
    render json: Report.find(params[:id]).statistics.to_json 
end 

И в моем Ember клиента я называю следующее:

$.ajax({ 
    type: 'GET', 
    url: '/api/v1/reports/1/include_statistics' 
}).then(points => { 
    //Do something 
});