【发布时间】:2015-01-19 12:45:09
【问题描述】:
我有这些模型:
老师
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 的呢?
提前谢谢你。
【问题讨论】:
-
您是否尝试过将该代码粘贴到 Rails 控制台中?
-
试试
active_teachers.to_sql
标签: mysql ruby-on-rails ruby join rails-activerecord