首页 > 解决方案 > 带有 collection_select 的下拉菜单:将下拉菜单划分为多个部分

问题描述

我有一个位置下拉菜单,它从数据库中提取位置数据。

@locations

...是一个 ActiveRecord::Associations::CollectionProxy 对象,包含各种位置(即 loc1、loc2、locY)

我真正想做的是让下拉列表根据类别划分位置(例如编号位置:loc1、loc2;字母位置:locY 等)。

到目前为止的代码是(在一个苗条的文件中),

f.collection_select :location_id, current_provider.locations.except_unassigned, :to_s, { include_blank: true }, class: 'form-control'

有人对如何开始有建议吗?

非常感谢!

标签: ruby-on-railsrubyactiverecordrails-activerecord

解决方案


您可以使用 grouped_options_for_select 并实现此目的。

<% locations = {'Numbered Locations' => ['loc1', 'loc2'],'Lettered Locations' => ['locX', 'locY'] } %>

<%= select_tag :city, grouped_options_for_select(locations) %>

推荐阅读