Button for change an attribute's value

Hello people

I’m stuck in a problem, I’ve tried to solve this from last week and I
still can’t achieve it.

I have a Form in my rails 3.0.9 app to “accept” or “reject” a
document, untill now I’m using a collection select with two options
“Accept” and “Reject”, then I have to click on the submit button to
save changes.

What I want to do now is, instead of the collection select I want to
have two buttons, one named “accept” and the other named “reject” and
when the user click one of the buttons, save the changes inmediately.

Does anyone know how can I do this?? (I’ve tried with “button_to”, but
I don’t know how to change the value of the attribute). Thanks

On Thu, Oct 27, 2011 at 6:23 PM, Angelo C. [email protected]
wrote:

What I want to do now is, instead of the collection select I want to
have two buttons, one named “accept” and the other named “reject” and
when the user click one of the buttons, save the changes inmediately.

Does anyone know how can I do this?? (I’ve tried with “button_to”, but
I don’t know how to change the value of the attribute). Thanks

In the Form, you can set two buttons with a different text

Accept
Reject

I presume that could be

submit_tag(“Accept”)
submit_tag(“Reject”)

with the appropriate html around it.

Then when the user clicks one of the two buttons, you will get a POST
request that will contain params and one of the params will have the key
“commit”

Parameters: {“utf8”=>“✓”,
“authenticity_token”=>“eW3HL1vjUzTcqpFvDcXnu9rGGUhFFe6vcwqfaA/4nWE=”,
“user”=>{“first_name”=>“Peter”, “last_name”=>“V”,… },
“commit”=>“Accept”}

So in the action if you can check

params[:commit]

which should be either “Accept” or “Reject” and can use that for your
logic.

as in

case params[:commit]
when “Accept”

do the accept

when “Reject”

do the reject

else

should not occur (but it can in certain circumstances)

end

HTH,

Peter

Thanks for your help Peter

You were right, I tried what you told me, and everything worked
perfect

Thanks again for your help

Maybe you should try pure html button with onclick attribute that
sends some information to your controller (via ajax?). It’s quite
simple btw.