如何以编程方式检查活动记录生成的sql

时间:2010-02-06 15:34:27

标签: ruby-on-rails activerecord

查看ActiveRecord查询将要生成的sql的代码是什么。例如,Modelname.all将生成“Select * from modelname”。是否有任何方法可以访问该字符串?

2 个答案:

答案 0 :(得分:1)

我不知道是否可以通过API完成,但您可以通过查看development.log来查看生成的SQL,我想您可以解析它。

扩展此答案,您可以通过

为ActiveRecord提供自定义记录器
ActiveRecord::Base.logger = yourLoggerHere

也许您可以创建一个能够为您完成所有工作的记录器。找到了this link,它实现了一个用于检测慢查询的文件。

答案 1 :(得分:0)

没有API方法来存储ActiveRecord执行的查询。但是,您可以将explained here作为<{3}}攻击ActiveRecord。