More than one submit_tag in a single form


#1

Hai everyone ,
I have a list of users(each user in a row)and an Approve button for each
user. I wish to change the status of the user to be approved when I
click on the Approve button of a user. When I tried getting all the
users in the params hash. I want to get the id of the user according to
which “Approve” button I clicked. How can I implement this one?
Thanks in advance.


#2

First let me say that your question sounds stupid, because based on the
info you’ve given us it would be simpler to use multiple forms. However,
you need look no farther that the doc for submit_tag.
http://api.rubyonrails.com/

-K


#3

On Tuesday 16 December 2008 03:03 am, Keynan P. wrote:

First let me say that your question sounds stupid, because based on
the
info you’ve given us it would be simpler to use multiple forms.
However,
you need look no farther that the doc for submit_tag.
http://api.rubyonrails.com/

Replying offlist: Is there any good purpose served by using the word
“stupid” which may lead the OP to infer that you are calling him
stupid. (Yes, I know you didn’t say that.)

Randy K.


#4

On Dec 16, 6:17 pm, Ellen B removed_email_address@domain.invalid wrote:

Yes, I can continue to muck with the CSS to get the link to exactly
match the SUBMIT button, but I wondered if it’s possible to have the
two SUBMIT buttons going to different actions and how to do it. I’m

Not really. Going to the same url pretty much means it will be the
same action.
You can get the button clicked as a parameter (if i remember correctly
via params[:commit] for a normal submit thing, or you can use
if you want the submitted parameter to be distinct from the label.

Fred


#5

(Woah there, I don’t think it sounds stupid. This is a pretty common
sort of thing to want to do in HTML UIs - without a separate form
for each. If you don’t know RoR, you wouldn’t think to have a single
form for each user listed on the page or whatever; that’s not the way
a proficient web developer would approach the problem in conventional
HTML. )

I’m having a similar problem. I’m modifying Redmine. In a form to
create a new bug/issue, there is currently a SUBMIT button to create
the issue and a link to preview the issue. I want the link to be a
button, instead. Here’s the code:

<% labelled_tabular_form_for :issue, @issue,
:html => {:multipart => true, :id =>
‘issue-form’} do |f| %>
<%= error_messages_for ‘issue’ %>


<%= render :partial => ‘issues/form’, :locals => {:f => f} %>
<%= submit_tag l(:button_create), :class=> 'but mb' %> <%= link_to_remote l(:label_preview), { :url => { :controller => 'issues', :action => 'preview', :project_id => @project }, :method => 'post', :update => 'preview', :with => "Form.serialize('issue-form')", :complete => "Element.scrollTo('preview')" }, :accesskey => accesskey(:preview), :class => 'but' %>
<% end %>

Yes, I can continue to muck with the CSS to get the link to exactly
match the SUBMIT button, but I wondered if it’s possible to have the
two SUBMIT buttons going to different actions and how to do it. I’m
not a RoR developer; I’m a UI designer w/ a lot of HTMl/JS experience
and I’m just trying to improve the usability of an existing (complex)
RoR application and customize the look & feel for our site. Sadly,
there’s no “RoR for UI Designers Cookbook”

Thanks for any help.

– EB

(The RoR documentation format is pretty weak, btw. No Search?
Incidentally, when I google [submit_tag ruby on rails] I get
http://api.rubyonrails.org/classes/ActionView/Helpers/FormHelper.html#M001394
which doesn’t document submit_tab. The RoR documentation site sucks –
no search??

the documentation for submit_tag is at
http://api.rubyonrails.com/classes/ActionView/Helpers/FormTagHelper.html#M001537)

On Dec 16, 12:03 am, Keynan P. removed_email_address@domain.invalid


#6

Please, correct me if I am wrong, but couldn’t you just assign a value
to each submit button that means what you need in your application
(and ID value, for example) then check the value from the params hash?

Pepe

On Dec 16, 2:18 pm, Frederick C. removed_email_address@domain.invalid


#7

and then you could check the value of the submit button and send it to
the right action:

if params[:commit] == “foo”
foo
else
bar
end