Ruby on Rails - 为option_groups_from_collection_for_select的每个optgroup添加选项

时间:2012-09-20 10:52:42

标签: ruby-on-rails ruby-on-rails-3

以下代码:

<%= 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

1 个答案:

答案 0 :(得分:1)

我想说在每个类别中添加一个虚拟子类别“All”,并在控制器中适当地处理“All”的选择。

或(评论后补充):

获取options_groups_from_collection_for_select的输出字符串,xml解析它(例如使用Nokogiri),找到所有类别节点并添加以下形式的xml子节点

<option value="<categoryname>-all">All</option>

并将结果字符串化。之后,您可以在控制器中处理返回值<categoryname>-all