【发布时间】:2009-11-09 14:20:51
【问题描述】:
我正在开发一个专门用于生成统计报告的应用程序,我希望该用户在保存他们的统计报告后也保存 sql 查询。为此,我编写了以下模块:
module SqlHunter
class ActiveRecord::ConnectionAdapters::AbstractAdapter
@@queries = []
cattr_accessor :queries
def log_info_with_trace(sql, name, runtime)
return unless @logger && @logger.debug?
@@queries << sql
end
alias_method_chain :log_info, :trace
end
end
在我写的控制器中
sqlfile = File.open("public/advancedStats/#{@dir_name}/advancedStatQuery.sql", 'w')
@queries = ActiveRecord::ConnectionAdapters::AbstractAdapter::queries
for query in @queries do
sqlfile.write("#{query} \n")
end
sqlfile.close
我还通过添加这一行来修改 Rails 环境:
ActiveRecord::Base.logger.level = Logger::DEBUG
这个程序正在运行,我可以获得所有查询,但是我只需要一个用户完成的特定查询来生成统计报告。
有人知道吗, 谢谢,
mgatri
【问题讨论】:
标签: sql ruby-on-rails