有没有办法减少rails控制台中错误报告的冗长程度?具体来说,关闭堆栈跟踪显示?这在大多数时候都没用,而且当我遇到愚蠢的手指时,彻底烦人.
当我输入类似的内容时:
MyModel.vtrsyr
我不需要堆栈跟踪来告诉我没有'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_trace_limit.所以:
conf.back_trace_limit = 0
将有效地禁用当前会话的回溯,输出将是简洁明了的:
>> MyModel.gnu NoMethodError: undefined method `gnu' for MyModel:Class
要么
>> obj.do_defective_math ZeroDivisionError: divided by 0
为了使事情更方便,可以在〜/ .irbrc中定义一个函数.就像是:
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
可以将其称为控制台会话,以根据需要禁用或启用后向跟踪