Как предотвратить вывод ActiveRecord :: Base.logger из метода? - PullRequest
0 голосов
/ 28 мая 2019

Приведенный ниже метод занимает несколько минут для распечатки записи базы данных каждый раз, когда я вызываю ее в консоли.Мне нужно видеть печать в остальное время, поэтому полностью ее отключить нельзя.

Это моя неудачная попытка напрямую остановить печать методом.

def generate_dataset
  old_logger = ActiveRecord::Base.logger
  ActiveRecord::Base.logger = nil

  ProductDatum.create(product_names: Products.all.pluck(:name))

  ActiveRecord::Base.logger = old_logger
end

1 Ответ

1 голос
/ 28 мая 2019

Вы ищете #silence, который принимает блок, в течение которого регистратор отключается:

def generate_dataset
  ActiveRecord::Base.logger.silence do
    ProductDatum.create(product_names: Products.all.pluck(:name))
  end
end
...