以下代码:
<%= select_tag "Cat", option_groups_from_collection_for_select(Category.all, :subcategories, :name, :id, :name, 3) %>
将产生如下输出:
Name Full First Last Username Nickname Email Personal Work ...
我需要的是为每个optgroup标签(名称,电子邮件)添加“全部”选项,以便输出为:
Name All Full First Last Username Nickname Email All Personal Work ...
TIA
答案 0 :(得分:1)
我想说在每个类别中添加一个虚拟子类别“All”,并在控制器中适当地处理“All”的选择。
或(评论后补充):
获取options_groups_from_collection_for_select
的输出字符串,xml解析它(例如使用Nokogiri),找到所有类别节点并添加以下形式的xml子节点
<option value="<categoryname>-all">All</option>
并将结果字符串化。之后,您可以在控制器中处理返回值<categoryname>-all
。