ruby-on-rails - Rails 中的分组选择

标签 ruby-on-rails ruby

真的很简单的问题 - 我如何使用带有分组选项的 select(ActionView::Helpers::FormOptionsHelper)?

我已经让它与 select_tag (ActionView::Helpers::FormTagHelper) 一起工作,但我真的很想让它使用 select 标签来匹配表单的其余部分。这可能吗?

我的选项是这样的:

[
  ['Group 1', ["Item 1", "Item 2", "Item 3"]],
  ['Group 2',["Item 1", "Item 2", "Item 3", "Item 4"]]
]

目前我的观点是:

%tr#expense
  %td
    = f.text_field :value
    = f.hidden_field :type, :value => mode

最佳答案

编辑

更正,因为您使用的是数组,所以您需要 grouped_options_for_select

例子:

grouped_options = [
  ['Group 1',
    ["Item 1", "Item 2", "Item 3"]],
  ['Group 2',
    ["Item 1", "Item 2", "Item 3", "Item 4"]]
]
grouped_options_for_select(grouped_options)

打印以下内容:

<optgroup label="Group 1">
  <option value="Item 1">Item 1</option>
  <option value="Item 2">Item 2</option>
  <option value="Item 3">Item 3</option>
</optgroup>
<optgroup label="Group 2">
  <option value="Item 1">Item 1</option>
  <option value="Item 2">Item 2</option>
  <option value="Item 3">Item 3</option>
  <option value="Item 4">Item 4</option>
</optgroup>

请注意,您必须提供自己的 select 标签来包装它。没有可以为您进行分组的select 函数,只有这个方法。

你应该克服你的沉默寡言。 Rails Way (tm) 执行您要求的操作是将 select_tag 与 grouped_options_for_select 结合使用:

<%= select_tag "foo[bar]", 
grouped_options_for_select(@bars) %>

这就是您在使用 Rails 时不走寻常路时发生的情况。 :)

这是我刚在 google 上找到的引用资料:

http://www.ruby-forum.com/topic/185407

关于ruby-on-rails - Rails 中的分组选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1192843/

相关文章:

ruby-on-rails - 从 ActiveRecord 获取表名

ruby-on-rails - rails : attribute_changed?

ruby-on-rails - 为 Rails 4 : why should you keep user profile data on a separate table to the Devise User models table 设计

ruby - 当方法名和 block 名相同时会发生什么?

Java 静态 vs Ruby 的 self

mysql - Ruby:Rails:MRI 和 JRuby

ruby-on-rails - 为什么我的 schema.rb 文件没有更新?

ruby-on-rails - MongoDB Rails3.2 数据库命令 'create' 失败

javascript - 如何通过手机、Outlook 电子邮件或城市获取用户的本地时间(时区)?

Ruby 按数组中的列写入 CSV 文件?