我正在尝试构建一个打印流程,其中包括使用Rails打印一批财务应用程序。
我正在打印大约100个应用程序,其中包含多个级别的数据(应用程序本身,子模型及其子模型)。
目前该页面的效率非常低,因为它正在进行大量的N + 1查询,导致性能不佳。
问题是,是否有一种从数据库中获取此数据的有效方法。我尝试使用includes()
为所有子模型提取表单,但这对于低于该模型的模型没有帮助(例如,income_line_items
模型上的financial_history
)
有什么想法吗?
答案 0 :(得分:10)
您是否尝试过使用嵌套哈希来访问子子模型?类似的东西:
@app = Application.includes(:first_submodel,
{:second_submodel => [:first_sub_submodel, :second_sub_submodel]},
{:third_submodel => :third_sub_submodel})