how do you pass paramters from a button in rails?

I have the following code in my show.html.erb file, it calls the right method (or path).
I am unsure how to pass variables from my product show.html.etb to my actual method...

<%= button_to 'Add to Cart', add_to_cart_path, method: :post %>

I need to pass the product id, and possibly qty.


button_to generates a form with a button. I’m not sure there’s a way to add custom hidden fields to the form. One way around the problem would be to create the form manually, add the hidden input (with product ID), a number input with quantity and the submit button.

Would this work for you?


One way around the "problem" would be to read the documentation
for that method, which includes under "options"

:params - Hash of parameters to be rendered as hidden fields within the form.


You can put the parameters as an argument to a path like so:

=link_to “Add Special”, add_special_path(work_day: @date), class: 'uk-button buffer-left-twice’ which will make a url like

Or if you have a model that is already in the button, you put parameters after it like:

%= link_to ‘Confirm my account’, confirmation_url(@resource, :confirmation_token => @token)

This is from Devise on their default views

D’oh! Thanks for correcting me, Hassan. I consulted the docs but somehow completely missed that.