将数组传递给select_tag

我目前将此作为搜索:

 'users', :action => 'townsearch', :method => 'get' do %>    

我的用户模型中有以下列表:

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

查看select_tag的API文档 。

它说:

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

其中option_tags是一个包含选择框选项标签的字符串。 您可以使用其他帮助方法将容器转换为选项标记字符串。

第一个例子:

 select_tag "people", options_from_collection_for_select(@people, "id", "name") #  

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

对于您的示例,您应该使用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 %> 

我相信你想使用collection_select助手。

http://api.rubyonrails.org/classes/ActionView/Helpers/FormOptionsHelper.html#M001593

另见相关: Rails中的下拉框