📅  最后修改于: 2023-12-03 15:07:48.583000             🧑  作者: Mango
有时候我们在开发过程中需要查看 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 语句。
config/application.rb
文件中设置日志输出级别为 :debug
,这样才能看到 SQL 查询语句。config.log_level = :debug
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 查询语句,以便优化应用程序性能和调试应用程序错误。