gpt4 book ai didi

sql - 如何查看 Ruby on Rails 中给定 ActiveRecord 查询将生成的 SQL

转载 作者:行者123 更新时间:2023-12-03 04:39:59 25 4
gpt4 key购买 nike

我想查看给定的 ActiveRecord 查询将生成的 SQL 语句。我知道我可以在发出查询后从日志中获取此信息,但我想知道是否有一种方法可以在 ActiveRecord 查询上调用。

例如:

SampleModel.find(:all, :select => "DISTINCT(*)", :conditions => ["`date` > #{self.date}"], :limit => 1, :order => '`date`', :group => "`date`")

我想打开 irb 控制台并在末尾添加一个方法,该方法将显示此查询将生成的 SQL,但不一定执行该查询。

最佳答案

与 penger 类似,但即使在加载类并且记录器已缓存之后,也可以随时在控制台中工作:

对于 Rails 2:

ActiveRecord::Base.connection.instance_variable_set :@logger, Logger.new(STDOUT)

对于 Rails 3.0.x:

ActiveRecord::Base.logger = Logger.new(STDOUT)

对于 Rails >= 3.1.0,这已经在控制台中默认完成。如果噪音太大而您想将其关闭,您可以这样做:

ActiveRecord::Base.logger = nil

关于sql - 如何查看 Ruby on Rails 中给定 ActiveRecord 查询将生成的 SQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1344232/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com