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