I am trying to generate the Form Select with the OPTGROUP tags, from a simple array. For example I have an array : [Acer, laptop, 1], [Acer, monitor, 2], [HP, desktop, 3], [HP, printer,4] I know how to use the Select helper to generate the Select - Option tags from an array. But I just couldn''t figure out how to do with the OPTGROUP tag. I would like to produce the final result from the array as: <optgroup label="Acer"> <option value="1">laptop</option> <option value="2">monitor</option> ... </optgroup> <optgroup label="HP"> <option value="3" >Desktop</option> <option value="4">Printer</option> ... </optgroup> I know there is a helper called option_groups_from_collection_for_select. But from what I understand this helper is only based on the object relationships of its arguments. I would like to generate from a simple array, using a helper. I have spend hours trying to figure this out but without success. Any help will be greatly appreciated. Thanks in advance. Steve --~--~---------~--~----~------------~-------~--~----~ 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 -~----------~----~----~----~------~----~------~--~---
On 14 Jun 2008, at 00:07, stevel wrote:> > I am trying to generate the Form Select with the OPTGROUP tags, from a > simple array. For example I have an array : [Acer, laptop, 1], [Acer, > monitor, 2], [HP, desktop, 3], [HP, printer,4] > > I know how to use the Select helper to generate the Select - Option > tags from an array. But I just couldn''t figure out how to do with the > OPTGROUP tag.You''ve just got completely the wrong data structure. Either coerce your data into the form expected by option_groups_from_collection_for_select (eg use some structs; you may find group_by helpful) or just do it all by hand Fred> > > I would like to produce the final result from the array as: > > <optgroup label="Acer"> > <option value="1">laptop</option> > <option value="2">monitor</option> > ... > </optgroup> > <optgroup label="HP"> > <option value="3" >Desktop</option> > <option value="4">Printer</option> > ... > </optgroup> > > I know there is a helper called > option_groups_from_collection_for_select. But from what I understand > this helper is only based on the object relationships of its > arguments. I would like to generate from a simple array, using a > helper. > > I have spend hours trying to figure this out but without success. Any > help will be greatly appreciated. > > Thanks in advance. > > Steve > > >--~--~---------~--~----~------------~-------~--~----~ 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 -~----------~----~----~----~------~----~------~--~---
Fred, thanks for your input. Having spending sometime understanding option_groups_from_collection_for_select, I agreed with you that my data structure above was all wrong. Let me try again to describe my problem after approaching the problem differently. I am trying to have a Select dropdown by groups whereby the content of this dropdown would be the names that come from a data table called User with the following attribs. class User < ActiveRecord::Base # attribs: id, name, location end I have tried using the option_groups_from_collection_for_select as follows: option_groups_from_collection_for_select(User.find(:all), User.find(:all, :order => ''location DESC, name''), :location, :name, :name) hoping to get something like the following result: <optgroup label="CA"> <option value="Henry">Henry</option> <option value="James">James</option> ... </optgroup> <optgroup label="TX"> <option value="Gordon">Gordon</option> <option value="Sally">Sally</option> <option value="Thomas">Thomas</option> ... </optgroup> This doesn''t seem to be correct. If someone could help point out what I am not doing right, that would be most appreciated. Thanks in advance. On Jun 14, 5:24 am, Frederick Cheung <frederick.che...-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote:> On 14 Jun 2008, at 00:07, stevel wrote: > > > > > I am trying to generate the Form Select with the OPTGROUP tags, from a > > simple array. For example I have an array : [Acer, laptop, 1], [Acer, > > monitor, 2], [HP, desktop, 3], [HP, printer,4] > > > I know how to use the Select helper to generate the Select - Option > > tags from an array. But I just couldn''t figure out how to do with the > > OPTGROUP tag. > > You''ve just got completely the wrong data structure. Either coerce > your data into the form expected by > option_groups_from_collection_for_select (eg use some structs; you may > find group_by helpful) or just do it all by hand > > Fred > > > > > I would like to produce the final result from the array as: > > > <optgroup label="Acer"> > > <option value="1">laptop</option> > > <option value="2">monitor</option> > > ... > > </optgroup> > > <optgroup label="HP"> > > <option value="3" >Desktop</option> > > <option value="4">Printer</option> > > ... > > </optgroup> > > > I know there is a helper called > > option_groups_from_collection_for_select. But from what I understand > > this helper is only based on the object relationships of its > > arguments. I would like to generate from a simple array, using a > > helper. > > > I have spend hours trying to figure this out but without success. Any > > help will be greatly appreciated. > > > Thanks in advance. > > > Steve--~--~---------~--~----~------------~-------~--~----~ 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 -~----------~----~----~----~------~----~------~--~---