小编典典

将每个SQL查询记录到Rails 3中的数据库

sql

这个问题是一个跟进这个问题,我应该把这个代码?

connection = ActiveRecord::Base.connection
class << connection
  alias :original_exec :execute
  def execute(sql, *name)
    # try to log sql command but ignore any errors that occur in this block
    # we log before executing, in case the execution raises an error
    begin
        file = File.open(RAILS_ROOT + "/log/sql.txt",'a'){|f| f.puts Time.now.to_s+": "+sql}
    rescue Exception => e
      ;
    end
    # execute original statement
    original_exec(sql, *name)
  end
end

我曾尝试将其放置在模型中,但发生的情况是,当我多次执行某些sql查询时,一旦返回“ 堆栈级别已达到深度 ”错误,就会发生这种情况。


阅读 180

收藏
2021-04-28

共1个答案

小编典典

将其放在config / initializers中。这很可能是因为每次在dev env中都重新加载类。该代码只需要执行一次。

2021-04-28