Записывайте каждый SQL-запрос в базу данных в Rails 3 - PullRequest
2 голосов
/ 02 декабря 2010

Этот вопрос является продолжением этого вопроса , где я должен разместить этот код?

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-запрос несколько раз, когда он возвращает « уровень стека - к глубокой » ошибке.

1 Ответ

2 голосов
/ 02 декабря 2010

Поместите его в конфиг / инициализаторы.Скорее всего, это происходит из-за перезагрузки классов каждый раз в dev env.Этот код должен выполняться только один раз.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...