Christian Mayne
Christian Mayne

Reputation: 1749

Simple Drop Down List from Array in Rails

This seems like it should be in Rails A1, but I can't find it any where. I have a bunch of locations stored in a Location table, made up of text fields City, County, Country etc. (This should have all been normalised out in my opinion, but there you go...).

A user can search by Location, and they enter into the separate search fields. At the moment, I'd like the Country such box to be a drop down list of countries. I currently get the list of countries in the db as follows:

@countries = Location.find(:all, :select=>"DISTINCT country")

The search box is currently just a text field:

<%= f.text_field :country,{:placeholder => "Country",:size=>20 } %>

But I'd like that to be a drop down box of the countries that are already in the @countries variable. It will just pass the country as a string. I'm a complete Newbie to Rails and even the basics are flumaxing me...Help!

Upvotes: 1

Views: 1743

Answers (1)

apneadiving
apneadiving

Reputation: 115541

If name is the actual name of the county in your country model:

 <%= f.select(:country, @countries.map(&:name), {:include_blank => 'Select a Country'}) %>

You could do differently, having the value of the field different from the value displayed. Documentation lives here.

FYI, I usually use a very convenient gem named Carmen to handle country lists etc...

Upvotes: 2

Related Questions