我目前正在搜索:
<%= 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列表都放在下拉菜单中?
最佳答案
检出select_tag
的API documentation。
它说:
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 %>
关于ruby-on-rails - 将数组传递给select_tag,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10056397/