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

标签 mysql ruby-on-rails ruby join rails-activerecord

我有这些模型:

老师

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/

相关文章:

ruby - 使用 CamelCase 命名 Ruby 常量是一种不好的风格吗?

mysql - SQL : ids containing specific arrays in a specific way

javascript - rails 4 : Jquery code only renders sometimes

java - 我在将 JDateChooser 中的日期存储到 MySQL 数据库中时遇到问题

php - MySQL INSERT 查询不更新数据库

ruby-on-rails - 如何异步处理 Rails 观察者和回调(在不同的线程中)?

ruby-on-rails - 获取两个日期之间的月份名称

php - Laravel 中使用 Eloquent 的存储库模式

MySQL 存储过程奇怪的行为 PHP

ruby-on-rails - 更改 en.yml 文件中的属性名称不起作用