2015-05-25 5 views
0

Я делаю много пространственных запросов, которые выгружают огромное количество текста в виде журналов каждый раз, когда я запускаю запросы. Это значительно замедляет мои программы.Теперь, когда ActiveRecord :: Base.silence {} ушел, как мне вернуть эту функциональность?

Я вынужден обновлять свои рельсы до «4.1.2» с «4.0.0», а ActiveRecord::Base.silence был полностью устарел, как в, он не работает. Вот что используется для работы

ActiveRecord::Base.silence do 
    noisy_query 
end 

Когда я пытаюсь это сейчас, я получаю эту ошибку ....

ArgumentError: wrong number of arguments (0 for 1) 
from /Users/davidddouglas/.rvm/gems/ruby-1.9.3-p551/gems/activesupport-4.1.2/lib/active_support/core_ext/kernel/reporting.rb:82:in `capture' 

В 4.0.0 он послал предупреждение устаревания, и теперь сценарий просто Безразлично» т работы. Как ни странно, функция все еще объявлена, она просто больше не работает и ожидает какой-то параметр. Я попытался переходящим в nil и получил эту ошибку:

NoMethodError: undefined method `reopen' for nil:NilClass 

Я ищу способ monkeypatch старой функциональности обратно в мою программу, чтобы получить мои скрипты работать снова. Не слишком беспокоиться о лучших практиках, так как это приложение, которое я использую внутренне с небольшим до конца и 0 пользователями, кроме меня.

Благодаря

ответ

1

silence переехал в core extension on logger.

Из их примера,

logger = Logger.new("log/development.log") 
logger.silence(Logger::INFO) do 
    logger.debug("In space, no one can hear you scream.") 
    logger.info("Scream all you want, small mailman!") 
end 
+0

Не то, что я на самом деле все равно в этот момент, потому что я никогда не анализирую свои журналы, но будет 'Logger.new («Журнал/development.log»)' стереть мой предыдущий файл журнала? –

+0

Нет, он создает экземпляр нового объекта 'Logger', который добавляется к файлу, который вы называете. Если есть путаница, это «новый» только для их примера. Вероятно, вы хотите использовать 'Rails.logger', который настроен при загрузке. –

+0

Не работает для меня, появилась ошибка: 'NoMethodError: undefined method' reopen 'для nil: NilClass' –

 Смежные вопросы

  • Нет связанных вопросов^_^