Chapter 11. Debugging
When youâre first starting out in Rails, itâs easy to wonder what exactly is going on at any given moment. Web applications by their very nature are tricky to debug, as so much happens before you see an answer. Fortunately, Rails includes tools to figure out whatâs going wrong while applications are running. Debugging tools keep evolving, but thereâs a basic set you should understand from the beginning.
Creating Your Own Debugging Messages
Iâm sure it was facetious, but an old programmer once told me that âthe real reason the PRINT statement was invented was for debugging.â While it may not be aesthetically pleasing to dump variable values into result screens, itâs often the easiest thing to do in early development. All controller instance variables are available to the view, so if you want to see what they contain, you can just write something like:
<%= @student %>
to display the contents of @student
. However, if the object has much
complexity and isnât just a string, it will insert something like:
#<Student:0x21824f8>
into the HTML for the page. All youâll see is the #
.
Rails does, however, offer a way to make this more useful. The
DebugHelper
class offers a helper method named debug
. While it wonât magically debug your
programs, it will present these kinds of messages in a slightly prettier
form, as YAML (Yet Another Markup Language). Instead of <%= @student %>
, for
example, you could write <%= debug(@student)
%>
. The debug
method would ...
Get Learning Rails 3 now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.