Ruby on rails Rails表单选项列表如何?

Ruby on rails Rails表单选项列表如何?,ruby-on-rails,ruby,Ruby On Rails,Ruby,我有一个散列常量: EMPLOYEE_NUM_OPTIONS = { 'Please, select' => '', '10-50' => '10-50', '51-100' => '51-100', '101-500' => '101-500', '501-1999' => '501-1999', '+2000' => '2000', } 我想在Rails表单中使用它作为选项,完全按照它的编写顺序。使用 <%=

我有一个散列常量:

 EMPLOYEE_NUM_OPTIONS = {
   'Please, select' => '',
   '10-50' => '10-50',
   '51-100' => '51-100',
   '101-500' => '101-500',
   '501-1999' => '501-1999',
   '+2000' => '2000',
}

我想在Rails表单中使用它作为选项,完全按照它的编写顺序。使用

<%= pf.select(:employee_num, GroupProfile::EMPLOYEE_NUM_OPTIONS.sort)%>

没有给出预期的结果


谢谢您的帮助。

当您对哈希调用
sort
时,您将有效地将哈希转换为键/值数组数组,然后使用
array#
对它们进行排序,这将破坏您的订单。无论你交给
pf.选择
的是什么,最后都应该经过:

接受容器(散列、数组、可枚举、您的类型)并返回一个选项标记字符串。给定一个容器,其中元素响应first和last(例如两个元素数组),“lasts”作为选项值,“firsts”作为选项文本哈希会自动转换为这种形式,因此键变为“第一”,值变为“最后”。

我的。因此,如果您使用的是Ruby 1.9,您应该能够这样说:

<%= pf.select(:employee_num, GroupProfile::EMPLOYEE_NUM_OPTIONS) %>
要获得正确的订单,请将其交给
pf。选择
。如果您还需要哈希表,则:

EMPLOYEE_NUM_OPTIONS_HASH = Hash[EMPLOYEE_NUM_OPTIONS]
我们应该做到这一点


同样,如果您使用的是1.9,那么您已经订购了散列,因此不需要所有这些额外的工作。

谢谢。现在我明白了引擎盖下面是什么了,以后一定不会感到困惑。干杯我使用的是ruby 1.8和数组数组。
EMPLOYEE_NUM_OPTIONS_HASH = Hash[EMPLOYEE_NUM_OPTIONS]