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 -~----------~----~----~----~------~----~------~--~---