Reputation: 16177
I have a Rails 3 application and I want to print in the view the request parameters. How do I do it?
Edit:
The purpose is to see what is being sent in a Form.
Upvotes: 56
Views: 96681
Reputation: 764
ap params.to_unsafe_h
Example output:
[19] pry(#<AssessmentsController>)> ap params.to_unsafe_h
{
"utf8" => "✓",
"authenticity_token" => "",
"assessment" => {
"form_field_10" => "0",
"form_field_12" => "1"
},
"commit" => "Create Assessment",
"controller" => "assessments",
"action" => "create"
}
=> nil
Uses https://github.com/awesome-print/awesome_print
Based on https://stackoverflow.com/a/49342607
Upvotes: 1
Reputation: 2823
Learnt this from the Ruby Hero James Edward Gray II on this episode of Ruby Rogues podcast which I highly recommend. raise
is a swiss army knife for inspecting anything in your Rails code which prints it nicely on your browser.
raise params.inspect
Upvotes: 15
Reputation: 180
Something like
<%= params.inspect %>
works, but what I would like to add is the following gem and Chrome plugin which was literally an eye-opener.
I am putting it here because I think it will help people check out params hashes, see SQL queries or view Errors.
Upvotes: 4
Reputation: 1209
Source: http://guides.rubyonrails.org/getting_started.html#creating-articles
When a form is submitted, the fields of the form are sent to Rails as parameters. These parameters can then be referenced inside the controller actions, typically to perform a particular task. To see what these parameters look like, change the create action to this:
def create
render plain: params[:article].inspect
end
The response when POST'ing a form to the targeted #create route would be a plain-text hash output of params[:article]
Upvotes: 3
Reputation: 17919
pretty_print
also can be useful, in ruby and rails apps both
pp params
pretty_print doc: http://ruby-doc.org/stdlib-2.1.0/libdoc/pp/rdoc/PP.html
Upvotes: 4
Reputation: 9800
You can use for models, controllers, etc.
puts YAML::dump(params)
Source: Ruby / Rails alternative to PHP print_r() and var_dump()
For views:
DebugHelper’s debug(object)
In your case:
DebugHelper’s debug(params)
Upvotes: 3
Reputation: 44952
If you wanted to print all of the parameters, the easiest way would be to use the inspect
puts params.inspect
or better, use the Rails logger
Rails.logger.debug params.inspect
In your html/ERB, you can use
<%= params.inspect %>
Upvotes: 90
Reputation: 43113
I would use debug(params)
. That will give you a nicely formatted view of them.
Upvotes: 48
Reputation: 124419
Parameters are stored in the params
hash. For example, if there was a title
parameter, you could display it in your view using <%= params[:title] %>
.
Upvotes: 13