Forum: Ruby on Rails Drop down with model info

Posted by Robert Negronida (gman327)
on 2012-11-19 07:56
I have this code:

<%= f.select :name,  [@m.each do |n|
         [ n.first_name , n.first_name ]
           end], :class => 'gam' %>

and i want it to display each of the first_name records from the table
that @m is associated with in a drop-down. When i test this code the
only option in the drop down menu it #Player:0x3c88008> (Player is the
name of the table that @m is associated with) i know from previous
testing that everything works fine besides this code.


Any ideas or help would be fantastic!
Posted by Jim ruther Nill (jimboker)
on 2012-11-19 08:29
(Received via mailing list)
On Mon, Nov 19, 2012 at 2:56 PM, Robert Negronida 
<lists@ruby-forum.com>wrote:

> I have this code:
>
> <%= f.select :name,  [@m.each do |n|
>          [ n.first_name , n.first_name ]
>            end], :class => 'gam' %>
>

#each returns @m, so what you want is #map or collect.  Try

<%= f.select :name,  @m.map { |n| [n.first_name, n.first_name] }, :class 
=>
'gam' %>


> --
>
>


--
Posted by Walter Davis (walterdavis)
on 2012-11-19 15:13
(Received via mailing list)
On Nov 19, 2012, at 2:28 AM, Jim Ruther Nill wrote:

> #each returns @m, so what you want is #map or collect.  Try
>
> <%= f.select :name,  @m.map { |n| [n.first_name, n.first_name] }, :class => 
'gam' %>
>
>
> and i want it to display each of the first_name records from the table
> that @m is associated with in a drop-down. When i test this code the
> only option in the drop down menu it #Player:0x3c88008> (Player is the
> name of the table that @m is associated with) i know from previous
> testing that everything works fine besides this code.

There's an optimization for this: collection_select

f.collection_select( :name, @m, :first_name, :first_name, :class => 
'gam' )

Walter
Posted by Jim ruther Nill (jimboker)
on 2012-11-19 15:21
(Received via mailing list)
On Mon, Nov 19, 2012 at 10:12 PM, Walter Lee Davis 
<waltd@wdstudio.com>wrote:

> > <%= f.select :name,  [@m.each do |n|
> > that @m is associated with in a drop-down. When i test this code the
> > only option in the drop down menu it #Player:0x3c88008> (Player is the
> > name of the table that @m is associated with) i know from previous
> > testing that everything works fine besides this code.
>
> There's an optimization for this: collection_select
>
> f.collection_select( :name, @m, :first_name, :first_name, :class => 'gam' )
>

You're right Walter but make sure to add an empty hash before the html
options
for the options parameter

f.collection_select :name, @m, :first_name, :first_name, {}, :class => 
'gam'


>
>
>


--
Posted by Werner (Guest)
on 2012-11-19 15:32
(Received via mailing list)
Something like that?

<%= f.select :city_id, @cities.map { |city| [city.name, city.id] } %>


Am Montag, 19. November 2012 07:57:39 UTC+1 schrieb Ruby-Forum.com User:
Please log in before posting. Registration is free and takes only a minute.
Existing account (Switch to SSL-encrypted connection)
NEW: Do you have a Google/GoogleMail or Yahoo account? No registration required!
Log in with Google account | Log in with Yahoo account
No account? Register here.