查看ActiveRecord查询将要生成的sql的代码是什么。例如,Modelname.all将生成“Select * from modelname”。是否有任何方法可以访问该字符串?
答案 0 :(得分:1)
我不知道是否可以通过API完成,但您可以通过查看development.log来查看生成的SQL,我想您可以解析它。
扩展此答案,您可以通过
为ActiveRecord提供自定义记录器ActiveRecord::Base.logger = yourLoggerHere
也许您可以创建一个能够为您完成所有工作的记录器。找到了this link,它实现了一个用于检测慢查询的文件。
答案 1 :(得分:0)
没有API方法来存储ActiveRecord执行的查询。但是,您可以将explained here作为<{3}}攻击ActiveRecord。