我有这些模型:
老师
class Teacher < ActiveRecord::Base
has_many :days
end
天
class Day < ActiveRecord::Base
belongs_to :teacher
end
并运行这些查询:
active_teachers = Teacher.joins(:days).where("teacher.id" => found_teachers.pluck(:teacher_id).uniq, "days.day_name" => selected_day)
查询(应该)做什么:found_teachers
是所有重复教师的数组,删除重复项并仅选择那些在相应日期类的教师(selected_day
包含一个字符串,例如 Monday
)。
因为变量active_teachers
中的数据量太大以至于我无法逐个记录地手动记录(而且我不确定我是否正确构建了这个查询并且它确实满足了我的需要),我试图找出这个查询是如何从 ActiveRecord 转换为 SQL 的。
通常我会在运行 Rails 应用程序服务器的终端中看到所有内容,但截至目前,我看不到该查询。
所以问题是,我如何才能看到 ActiveRecord 查询是如何转换为 SQL 的?
提前谢谢你。
最佳答案
要从您输入的查询中获取详细信息,您可以:
query.to_sql
query.explain
关于mysql - Rails 4 ActiveRecord - 如何查看如何解释数据库查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27060216/