如何在 CGI/Ruby 中将错误消息重定向到浏览器?

How can I redirect error messages to the browser in CGI/Ruby?

我已经使用 CGI/Perl 一段时间了,并且已经习惯了使用 Carp 将错误消息重定向到浏览器,例如:

use CGI::Carp qw(warningsToBrowser fatalsToBrowser set_message);
set_message("Please report this error to the administrator");

...

warningsToBrowser(1);

我正在考虑改用 Ruby 而不是 Perl,但我找不到执行类似错误重定向的方法。有没有可以做到这一点的 Ruby 模块?

 group :development do
    gem 'better_errors'
    gem 'binding_of_caller'
    gem 'meta_request'
end

查看此 railscast:Better Errors & RailsPanel and this thread redirect errors to browser in ruby + cgi,其中建议:

$stdout.sync = true
$stderr.reopen $stdout
puts "Content-type: text/html\n\n"`

content-type 需要在代码的前面,因为它之前的任何错误都不会发送到浏览器。