gpt4 book ai didi

ruby-on-rails - 启动Rails环境时,有没有办法禁止Erubis打印 "** Erubis 2.6.5"?

转载 作者:数据小太阳 更新时间:2023-10-29 07:29:33 26 4
gpt4 key购买 nike

我有几个经常通过 Rake 运行的 Cron 作业,这些作业的输出通过电子邮件发送(通过 MAILTO)。由于这些任务加载了 Rails 环境(包括 Erubis),它们总是在启动时打印出“** Erubis 2.6.5”。这意味着自 Cron 收到输出后,始终会生成一封电子邮件。有什么方法可以配置 Erubis 以停止将此启动消息打印到控制台?

最佳答案

使用此处的答案以及@michael-andrews 链接的答案,我对 Rails 2.3.14 项目进行了以下更改,无需更改我们的 gems 源代码。打开 config/boot.rb 并找到 Rails::Boot 类。您正在扩充 load_gems 方法:

class Rails::Boot
def run
load_initializer

Rails::Initializer.class_eval do
def load_gems
buffer = ""
previous_stdout, $stdout = $stdout, StringIO.new(buffer)

@bundler_loaded ||= Bundler.require :default, Rails.env
ensure
$stdout = previous_stdout

output = buffer.gsub(/^\*\* Erubis (\d+\.?)+\s*/, '')
puts output unless output.strip.empty?
end
end

Rails::Initializer.run(:set_load_path)
end
end

它的工作方式是我们在加载 gems 时重定向 $stdout,将流拉入本地缓冲区。然后我们在一切都完成后检查缓冲区,去除 Erubis 的标注,并显示任何其他可能发生的事情(不想错过任何我们不期望的事情!)。

关于ruby-on-rails - 启动Rails环境时,有没有办法禁止Erubis打印 "** Erubis 2.6.5"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2766580/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com