如何防止方法内输出 ActiveRecord::Base.logger?
How do I prevent output ActiveRecord::Base.logger from within a method?
每次在控制台中调用下面的方法时,它都需要几分钟才能打印出数据库条目。剩下的时间我需要看打印,所以完全关闭它不是一个选项。
这是我在方法中直接停止打印的尝试,没有成功。
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
您正在寻找 #silence
,它占用了一个块,在此期间记录器被静音:
def generate_dataset
ActiveRecord::Base.logger.silence do
ProductDatum.create(product_names: Products.all.pluck(:name))
end
end
每次在控制台中调用下面的方法时,它都需要几分钟才能打印出数据库条目。剩下的时间我需要看打印,所以完全关闭它不是一个选项。
这是我在方法中直接停止打印的尝试,没有成功。
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
您正在寻找 #silence
,它占用了一个块,在此期间记录器被静音:
def generate_dataset
ActiveRecord::Base.logger.silence do
ProductDatum.create(product_names: Products.all.pluck(:name))
end
end