Эффективное использование нескольких уровней данных в Rails - PullRequest
1 голос
/ 28 января 2011

Я пытаюсь построить процесс печати, который состоит из печати пакета финансовых приложений с использованием Rails.

Я печатаю около 100 приложений, которые состоят из нескольких уровней данных (само приложение, подмодели и их подмодели).

На данный момент страница очень неэффективна, так как выполняет много запросов N + 1, что приводит к снижению производительности.

Вопрос в том, существует ли эффективный способ получения этих данных из базы данных. Я пытался вытянуть формы с помощью includes() для всех подмоделей, но это не помогает с моделями ниже этого (например, income_line_items на financial_history модели)

Есть идеи?

1 Ответ

10 голосов
/ 28 января 2011

Вы пытались использовать вложенный хеш для доступа к суб-подмоделям?Что-то вроде:

@app = Application.includes(:first_submodel, 
                            {:second_submodel => [:first_sub_submodel, :second_sub_submodel]},
                            {:third_submodel  => :third_sub_submodel})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...