在Rails中有效地提取多个级别的数据

Nei*_*ton 1 activerecord ruby-on-rails

我正在尝试构建一个打印流程,其中包括使用Rails打印一批财务应用程序.

我正在打印大约100个应用程序,其中包含多个级别的数据(应用程序本身,子模型及其子模型).

目前该页面的效率非常低,因为它正在进行大量的N + 1查询,这导致性能很差.

问题是,是否有一种从数据库中获取此数据的有效方法.我已经尝试includes()为所有子模型提取表单,但这对于低于该模型的模型没有帮助(例如,income_line_itemsfinancial_history模型上)

有任何想法吗?

Dyl*_*kow 10

您是否尝试使用嵌套哈希来访问子子模型?就像是:

@app = Application.includes(:first_submodel, 
                            {:second_submodel => [:first_sub_submodel, :second_sub_submodel]},
                            {:third_submodel  => :third_sub_submodel})
Run Code Online (Sandbox Code Playgroud)