0

以下代码:

<%= select_tag "Cat", option_groups_from_collection_for_select(Category.all, :subcategories, :name, :id, :name, 3) %>

将产生如下输出:

姓名
    满的
    第一的
    最后的
    用户名
    昵称
电子邮件
    个人的
    工作
...

我需要为每个 optgroup 标签(名称、电子邮件)附加一个“全部”选项,以便输出如下:

姓名
    全部
    满的
    第一的
    最后的
    用户名
    昵称
电子邮件
    全部
    个人的
    工作
...

TIA

4

1 回答 1

1

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

或(在评论后添加):

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

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

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

于 2012-09-20T11:36:50.963 回答