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

ruby-on-rails – 在启动Rails环境时,有没有办法禁止Erubis打印“** Erubis 2.6.5”?,第1张

概述我有几个频繁的Cron工作,通过Rake运行,这些工作的输出通过电子邮件发送(通过MAILTO).由于这些任务加载了Rails环境(包括Erubis),因此它们总是在启动时打印出“** Erubis 2.6.5”.这意味着,自Cron接收输出后,始终会生成电子邮件.有没有办法配置Erubis停止打印此启动消息到控制台? 使用这里的答案以及@ michael-andrews链接的答案,我对我们的Ra 我有几个频繁的Cron工作,通过Rake运行,这些工作的输出通过电子邮件发送(通过MAILTO).由于这些任务加载了Rails环境(包括Erubis),因此它们总是在启动时打印出“** Erubis 2.6.5”.这意味着,自Cron接收输出后,始终会生成电子邮件.有没有办法配置Erubis停止打印此启动消息到控制台?解决方法 使用这里的答案以及@ michael-andrews链接的答案,我对我们的Rails 2.3.14项目进行了以下更改,该项目不需要更改我们的宝石源.打开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)  endend

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

总结

以上是内存溢出为你收集整理的ruby-on-rails – 在启动Rails环境时,有没有办法禁止Erubis打印“** Erubis 2.6.5”?全部内容,希望文章能够帮你解决ruby-on-rails – 在启动Rails环境时,有没有办法禁止Erubis打印“** Erubis 2.6.5”?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1288193.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-09
下一篇 2022-06-09

发表评论

登录后才能评论

评论列表(0条)

保存