Module: ActionView::Helpers::DebugHelper

Included in:
ActionView::Helpers
Defined in:
lib/action_view/helpers/debug_helper.rb

Overview

Provides a set of methods for making it easier to debug Rails objects.

Instance Method Summary collapse

Instance Method Details

#debug(object) ⇒ Object

Returns a YAML representation of object wrapped with <pre> and </pre>. If the object cannot be converted to YAML using to_yaml, inspect will be called instead. Useful for inspecting an object at the time of rendering.

Example

@user = User.new({ :username => 'testing', :password => 'xyz', :age => 42}) %>
debug(@user)
# =>
<pre class='debug_dump'>--- !ruby/object:User
attributes:
&nbsp; updated_at:
&nbsp; username: testing

&nbsp; age: 42
&nbsp; password: xyz
&nbsp; created_at:
attributes_cache: {}

new_record: true
</pre>


27
28
29
30
31
32
33
34
35
# File 'lib/action_view/helpers/debug_helper.rb', line 27

def debug(object)
  begin
    Marshal::dump(object)
    "<pre class='debug_dump'>#{h(object.to_yaml).gsub("  ", "&nbsp; ")}</pre>".html_safe
  rescue Exception => e  # errors from Marshal or YAML
    # Object couldn't be dumped, perhaps because of singleton methods -- this is the fallback
    "<code class='debug_dump'>#{h(object.inspect)}</code>".html_safe
  end
end