我想检查一些由ActiveRecord生成的查询,但我不需要实际运行它们。在查询返回结果之前,有没有方法可以访问它?
这两篇文章都应该帮助您做您想做的事情。
http://weblog.jamisbuck.org/2007/1/8/watching-activerecord-do-it-s-thing
http://weblog.jamisbuck.org/2007/1/31/more-on-watching-activerecord
我认为它埋在:中
construct_finder_sql,
http://groups.google.com/group/rubyonrails-talk/browse_frm/thread/38c492e3939dd9bf/?pli=1
tail-f log/development.log
在默认设置中工作,或者当您将记录器级别设置为DEBUG时工作。
Jamis的文章已经过时,或者至少不能使用我的Rails应用程序(可能是由于3年前的30000行应用程序的其他原因)。然而,这在任何时候都可以在控制台中工作:
ActiveRecord::Base.connection.instance_variable_set :@logger, Logger.new(STDOUT)