📜  在 Rails 控制台中显示 sql 查询 (1)

📅  最后修改于: 2023-12-03 15:07:48.583000             🧑  作者: Mango

在 Rails 控制台中显示 sql 查询

有时候我们在开发过程中需要查看 SQL 查询语句,以便优化代码或者调试问题。

在 Rails 控制台中显示 SQL 查询语句非常简单,我们只需要使用 ActiveRecord::Base.logger 方法就行了。

方法一:在控制台中启用日志输出

我们可以在控制台中运行以下代码,启用 SQL 日志输出:

# 查看 Rails 版本
$ rails -v

# 进入控制台
$ rails c

# 启用 SQL 日志输出
ActiveRecord::Base.logger = Logger.new(STDOUT)

启用之后就可以在控制台中看到所有执行的 SQL 查询语句了。

方法二:使用 ActiveRecord::Base.logger 方法

如果你想在代码中输出 SQL 查询语句,可以使用 ActiveRecord::Base.logger 方法来打印出每一条 SQL 语句。

1. 首先,我们需要在应用的 config/application.rb 文件中设置日志输出级别为 :debug,这样才能看到 SQL 查询语句。

config.log_level = :debug

2. 接下来,在代码中使用 ActiveRecord::Base.logger 方法输出 SQL 查询语句即可。

# 输出所有 SQL 查询语句
ActiveRecord::Base.logger.debug(ActiveRecord::Base.connection.execute("SELECT * FROM users").to_a)

# 输出经过 where 筛选后的 SQL 查询语句
ActiveRecord::Base.logger.debug(User.where(age: 18).to_sql)

以上代码都会输出对应的 SQL 查询语句。

总结

Rails 提供了简单的方式让我们能够打印出应用程序产生的 SQL 查询语句。我们可以使用 ActiveRecord::Base.logger 方法在控制台和代码中输出 SQL 查询语句,以便优化应用程序性能和调试应用程序错误。