validkeys
2008-Jul-17 01:47 UTC
Final Opinion :: Need final opinions on the best way to handle arrays in forms
Hi There, rails noob just trying to suss a few things out. So I have 2 tables. 1 called Posts and the other called comments. On one page I need to be able to edit both the information about the post and the attributes of each comment for that post. So here is what the array might look like: (Inside the params hash) "post" => [ {"id"=>28, "title" => "My Title!"} ] "comments" => [ {"id" => 1, "title" => "My Comment", "body" => "My Body"}, {"id" => 2, "title" => "My Comment", "body" => "My Body"}, {"id" => 3, "title" => "My Comment", "body" => "My Body"} ] Now, in PHP i would name the fields something like this: <input type="text" name="comment[0][title]" value="My Comment" /> <input type="text" name="comment[1][title]" value="My Comment" /> <input type="text" name="comment[2][title]" value="My Comment" /> I was able to do this in rails as well using: text_field "comment[][title]" ... Then I read somewhere else that people were doing something like this text_field "comment_1[title]" and then parsing out the data. Which one is better? I would tend to think that the array method above is superior, but then again, I may have no clue what I am talking about. Is there another method that I am not thinking of? Thanks!!!! --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---
Thorsten Müller
2008-Jul-17 08:40 UTC
Re: Final Opinion :: Need final opinions on the best way to handle arrays in forms
> <input type="text" name="comment[0][title]" value="My Comment" /> > > text_field "comment_1[title]" >No 1 would give you params[:comment]["0"][title] (I''m 100% not sure, but I think that Rails would make the index a string in any case, since it does with most things it gets from the browser) No 2 would give you params[:comment_1][title] I like No 1, since it differentiates the name from the index, but it''s no big difference. So I guess, you can do what gives you the better looking code. --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---
validkeys
2008-Jul-17 11:41 UTC
Re: Final Opinion :: Need final opinions on the best way to handle arrays in forms
I had seen another possible option in railscasts where Ryan Bates uses fields_for. He would therefore create the form element without an array in the name and the fields_for tag would be named something like post[comments][]. Rails would then output form fields with this setup: post[comments][0][title] It looks a lot cleaner and I think does the same thing. On Jul 17, 4:40 am, Thorsten Müller <thors...-1oxKqHKwyltBDgjK7y7TUQ@public.gmane.org> wrote:> > <input type="text" name="comment[0][title]" value="My Comment" /> > > > text_field "comment_1[title]" > > No 1 would give you params[:comment]["0"][title] > (I''m 100% not sure, but I think that Rails would make the index a > string in any case, > since it does with most things it gets from the browser) > > No 2 would give you params[:comment_1][title] > > I like No 1, since it differentiates the name from the index, > but it''s no big difference. So I guess, you can do what gives > you the better looking code.--~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk-unsubscribe@googlegroups.com For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---