Ruby on rails 4 禁用Rails控制台中的堆栈跟踪显示
有没有办法减少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]
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服务器中实现这一点,您可以通过以下方式实现:参见我的答案注释-我必须结合两种解决方案,以最终停止引用我不维护的源代码的无用垃圾输出。