I'm new on RoR and I was wondering with sb could help me.
I have one page that interacts with a lot of controllers and actions,
so I need to create many forms(one per action).
Example: In this page I send message to user, make one vote in one
post, remove one post. So I create one action per each action.
My quesion is: There is any other way to do that?
I think that many forms inside one page make the code ugly, but I
don't know if I'm correct.
Example: In this page I
1) send message to user,
2) make one vote in one post,
3) remove one post.
I'm not 100% sure what you mean by #1 but I'll assume that it requires a
text area and a submit button. I'd probably use a regular form for this
although scriptaculous offers many "Web 2.0" ways to do this as well
#2 can be done with an AJAX request. I'd have a button and use the
"onClick" event of the button to send the AJAX request to a method that
is looking for a "post". e.g. in your routes file, define the action's
method as :post. There should be samples in various Rails documents and
also perhaps on the prototypejs.org site (since you are likely using
#3 appears to me as the normal delete. Go to the typical
"index.html.erb" page for a sample of how to do a delete in Rails. It
appears to the user as just a link and sends a "delete" http message
(although its not really a delete http message as I recall). #3 in
particular indicates that you need to learn about "Restful" routes in
Rails. Its really wonderful. There are tons of info about Restful
routes on the web.
The Rails book(s) from Pragmatic Programmers is very good and would help
Thanks for help me, I will try to follow your tips ;D
May I ask you another question?
If yes, my question is:
Is a good practice in this page has only one BIGGGGG form that treat
all the actions and this action has a lot of (if
params[:button_name]), or has many forms responsible to treat each
This is more of a design question. There is nothing wrong with many
forms. And usually keeping things separate leads to more stable, easier
to maintain code. So I would probably opt for many small forms rather
than one big one.