首页 > 解决方案 > 有没有办法改善我的 Ruby on Rails 急切加载?

问题描述

我正在我的 Rails 应用程序中的一个页面上工作,该页面需要通过许多关联的表显示信息。目前,这个页面大约需要 15 秒来加载大约 700 条记录。我正在尝试优化数据查询。目前,我的查询如下所示:

@students = Student.includes(:school, orders: { cart: { packages: [:options, :order_packages] } })
        .where('students.school_id = ?', params[:school_id])
        .where('students.teacher like ?', '%day%')
        .where('students.grade = ?', '12')
        .order(:last_name)

此查询需要通过 .includes 方法进行深度嵌套的关联。有没有更有效的方法来运行这个查询?

标签: ruby-on-railseager-loading

解决方案


这似乎不是一个急切的加载问题。您只是在查询表中的students列。确保这些列具有正确的索引,并且您的查询正在使用这些索引。确保关联表的外键具有索引,并且这些外键也用于完成预加载。


推荐阅读