将数组传递给select_tag

时间:2012-04-07 16:51:01

标签: ruby-on-rails select

我目前将此作为搜索:

 <%= 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列入下拉菜单?

2 个答案:

答案 0 :(得分:23)

查看select_tag的{​​{3}}。

它说:

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>

这将从特定模型数据生成选择标记。

对于您的示例,您应该使用API documentation

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

答案 1 :(得分:2)

相关问题