Передача массива в select_tag

В настоящее время я использую это как поиск:

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

В моей модели пользователя есть следующий список:

  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"]

Мне интересно, как я могу выбрать список county_options в раскрывающемся меню?

Ответ 1

Ознакомьтесь с документацией API для select_tag.

В нем говорится:

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

Где option_tags - это строка, содержащая теги параметров для поля выбора. Вы можете использовать другие вспомогательные методы, которые превращают контейнеры в строку тегов параметров.

Первый пример:

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

Это генерирует теги выбора из определенных данных модели.

В вашем примере вы должны использовать 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 %>