Ruby on rails 4 禁用Rails控制台中的堆栈跟踪显示

Ruby on rails 4 禁用Rails控制台中的堆栈跟踪显示,ruby-on-rails-4,rails-console,Ruby On Rails 4,Rails Console,有没有办法减少rails控制台中错误报告的冗长性?具体来说,是否关闭堆栈跟踪显示?这在大多数时候都没用,而且当我患上了一种手指愚蠢的病时,我会感到非常恼火 当我键入以下内容时: MyModel.vtrsyr def toggle_trace if conf.back_trace_limit > 0 conf.back_trace_limit = 0 else conf.back_trace_limit = IRB.conf[:BACK_TRACE_LIMIT]

有没有办法减少rails控制台中错误报告的冗长性?具体来说,是否关闭堆栈跟踪显示?这在大多数时候都没用,而且当我患上了一种手指愚蠢的病时,我会感到非常恼火

当我键入以下内容时:

MyModel.vtrsyr
def toggle_trace
  if conf.back_trace_limit > 0
    conf.back_trace_limit = 0
  else
    conf.back_trace_limit = IRB.conf[:BACK_TRACE_LIMIT]
  end
end

我不需要堆栈跟踪来告诉我没有“vtrsyr”方法,重要的是rails控制台使用irb,并且可以访问irb配置选项的范围

$ rails c
Loading development environment (Rails 4.2.0)
>> conf
=> conf.ap_name="irb"
conf.auto_indent_mode=false
conf.back_trace_limit=16
.
.
.
这就是:conf.back\u trace\u limit。因此:

conf.back_trace_limit = 0
将有效地禁用当前会话的回溯,并且输出将非常简洁:

>> MyModel.gnu
NoMethodError: undefined method `gnu' for MyModel:Class

为了方便起见,可以在~/.irbrc中定义函数。比如:

MyModel.vtrsyr
def toggle_trace
  if conf.back_trace_limit > 0
    conf.back_trace_limit = 0
  else
    conf.back_trace_limit = IRB.conf[:BACK_TRACE_LIMIT]
  end
end

这可以称为控制台会话来根据需要禁用或启用回溯

这太棒了。请注意,要在Rails服务器中实现这一点,您可以通过以下方式实现:参见我的答案注释-我必须结合两种解决方案,以最终停止引用我不维护的源代码的无用垃圾输出。