如何使用ActiveRecord向请求添加注释?

| 我想在活动记录发送的每个请求中添加注释,以便在mysql慢查询中找到源。如何在ActiveRecord发送请求之前修改请求? 例如,我想在中央mysql慢查询日志中使用它。
SELECT * FROM articles
-- File: refresh-article.rb
    
已邀请:
ActiveRecord已将带有计时信息的数据库请求记录到您的应用程序日志中。     
我用猴子补丁解决了问题
ActiveRecord::ConnectionAdapters::Mysql2Adapter.class_eval do
    def execute_with_log(sql, name=nil)
        sql = \"-- Script: #{$0}\\n#{sql}\"
        execute_without_log(sql, name)
    end
    alias_method_chain :execute, :log
end
    
在rails应用中,您可以按
log/(production|development).log
的时间查看查询。 但是,如果您还需要更多,我建议您在开发模式下签出NewRelic。它是免费的,并且显示查询执行源(看起来像您想要的内容)。它确实是那里最好的日志记录/性能分析器之一。     
我找到了猴子补丁MySQL2 :: execute的解决方案     

要回复问题请先登录注册