Reputation: 622
Is there any way to reduce the verbosity of error reporting in the rails console? Specifically, turn off the stack trace display? It's of no use most of the time, and downright annoying when I'm suffering from a case of the stupid fingers.
When I type something like:
MyModel.vtrsyr
I don't need a stack trace to tell me that there is no 'vtrsyr' method
Upvotes: 6
Views: 1805
Reputation: 622
The important thing is that rails console use irb, and has access to the range of irb config options
$ rails c
Loading development environment (Rails 4.2.0)
>> conf
=> conf.ap_name="irb"
conf.auto_indent_mode=false
conf.back_trace_limit=16
.
.
.
And there it is: conf.back_trace_limit. So:
conf.back_trace_limit = 0
will effectively disable the backtrace for the current session, and output will be nice and concise:
>> MyModel.gnu
NoMethodError: undefined method `gnu' for MyModel:Class
or
>> obj.do_defective_math
ZeroDivisionError: divided by 0
To make things a bit more convenient, a function can be defined in ~/.irbrc. Something like:
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
which can be called a console session to disable or enable the back trace as needed
Upvotes: 8