2012-04-07 12 views
11

Al momento ho questo come una ricerca:Passando Array ad un select_tag

<%= form_tag users_path, :controller => 'users', :action => 'townsearch', :method => 'get' do %> 
    <%= select_tag :county, params[:county] %> 
    <%= submit_tag 'search'%> 
<% end %> 

ho la lista seguente nel mio modello di utente:

COUNTY_OPTIONS = [ "Avon", "Bedfordshire", "Berkshire", "Borders", "Buckinghamshire", "Cambridgeshire","Central", 
       "Cheshire", "Cleveland", "Clwyd", "Cornwall", "County Antrim", "County Armagh", "County Down", 
       "County Fermanagh", "County Londonderry", "County Tyrone", "Cumbria", "Derbyshire", "Devon", 
       "Dorset", "Dumfries and Galloway", "Durham", "Dyfed", "East Sussex", "Essex", "Fife", "Gloucestershire", 
       "Grampian", "Greater Manchester", "Gwent", "Gwynedd County", "Hampshire", "Herefordshire", "Hertfordshire", 
       "Highlands and Islands", "Humberside", "Isle of Wight", "Kent", "Lancashire", "Leicestershire", "Lincolnshire", 
       "Lothian", "Merseyside", "Mid Glamorgan", "Norfolk", "North Yorkshire", "Northamptonshire", "Northumberland", 
       "Nottinghamshire", "Oxfordshire", "Powys", "Rutland", "Shropshire", "Somerset", "South Glamorgan", "South Yorkshire", 
       "Staffordshire", "Strathclyde", "Suffolk", "Surrey", "Tayside", "Tyne and Wear", "Warwickshire", "West Glamorgan", 
       "West Midlands", "West Sussex", "West Yorkshire", "Wiltshire", "Worcestershire"] 

Mi chiedo come fare la lista di I tutti i county_options nel menu a discesa?

risposta

23

Verificare API documentation per select_tag.

Dice:

select_tag(name, option_tags = nil, options = {}) 

Dove option_tags è una stringa che contiene i tag di opzione per la casella di selezione. È possibile utilizzare altri metodi di supporto che trasformano i contenitori in una stringa di tag di opzione.

Primo esempio:

select_tag "people", options_from_collection_for_select(@people, "id", "name") 
# <select id="people" name="people"><option value="1">David</option></select> 

Questo genera selezionare i tag dai dati del modello specifici.

Per l'esempio, utilizzare options_for_select.

<%= form_tag users_path, :controller => 'users', :action => 'townsearch', :method => 'get' do %> 
    <%= select_tag :county, options_for_select(User::COUNTY_OPTIONS) %> 
    <%= submit_tag 'search'%> 
<% end %>