how do you pass paramters from a button in rails?

38 views
Skip to first unread message

Joe Guerra

unread,
Feb 3, 2017, 10:52:31 PM2/3/17
to Ruby on Rails: Talk
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.

Thanks,
Joe

Greg Navis

unread,
Feb 4, 2017, 3:14:14 AM2/4/17
to rubyonra...@googlegroups.com
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?

nanaya

unread,
Feb 4, 2017, 3:30:14 AM2/4/17
to rubyonra...@googlegroups.com
Hi,
Add it as part of the url (something like `add_to_cart_path(product_id:
product.id, quantity: 1)`). If you need the quantity to be taken from an
input box then make a form instead of just a button.

Hassan Schroeder

unread,
Feb 4, 2017, 10:13:34 AM2/4/17
to rubyonrails-talk
On Sat, Feb 4, 2017 at 12:13 AM, Greg Navis <con...@gregnavis.com> wrote:
> 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

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.

FWIW,
--
Hassan Schroeder ------------------------ hassan.s...@gmail.com
twitter: @hassan
Consulting Availability : Silicon Valley or remote

Scott Eisenberg

unread,
Feb 4, 2017, 10:24:43 AM2/4/17
to rubyonra...@googlegroups.com
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




--
You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group.
To unsubscribe from this group and stop receiving emails from it, send an email to rubyonrails-ta...@googlegroups.com.
To post to this group, send email to rubyonra...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/rubyonrails-talk/CACmC4yAUOpp1nTzPOptHvOEX0td-do72Zq-qetytsbpwVWEY5Q%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.

Greg Navis

unread,
Feb 7, 2017, 4:26:09 AM2/7/17
to rubyonra...@googlegroups.com
D'oh! Thanks for correcting me, Hassan. I consulted the docs but somehow completely missed that.
Reply all
Reply to author
Forward
0 new messages