Rails 4 ActiveRecord - 如何查看如何解释数据库查询?

use*_*621 0 ruby mysql join ruby-on-rails rails-activerecord

我有这些模型:

老师

class Teacher < ActiveRecord::Base
  has_many :days
end
Run Code Online (Sandbox Code Playgroud)

class Day < ActiveRecord::Base
  belongs_to :teacher
end
Run Code Online (Sandbox Code Playgroud)

并运行这些查询:

  active_teachers = Teacher.joins(:days).where("teacher.id" => found_teachers.pluck(:teacher_id).uniq, "days.day_name" => selected_day)
Run Code Online (Sandbox Code Playgroud)

查询(应该)的作用是:found_teachers所有具有重复的教师的数组,删除双重性并仅选择那些在相应日期具有类的教师(例如selected_day,包含字符串Monday).

因为变量中的数据量active_teachers是如此之大,以至于我无法手动记录记录(我不确定我是否正确地构建了这个查询,它确实完全符合我的要求),我试图找出它是怎么回事此查询从ActiveRecord转换为SQL.

通常我会在终端中看到Rails应用程序运行服务器的所有内容,但截至目前,我没有看到此查询说明.

所以问题是,我怎样才能看到ActiveRecord查询如何转换为SQL?

先感谢您.

apn*_*ing 5

要从您正在键入的查询中获取详细信息,您可以执行以下操作:

query.to_sql
query.explain
Run Code Online (Sandbox Code Playgroud)