Rails 4 Enum仅映射所有枚举的部分列表

时间:2015-09-24 21:15:42

标签: ruby-on-rails enums

我在Rails 4中有一个枚举,其中包含60个不同的值,这些值在我的模型中编码。我试图将这些枚举分成不同的选择菜单。目前,我有以下代码:

          <%= f.select :termenum, Price.termenums.map { |k,v| [k.humanize, k] },
                        {:include_blank => ''}, class: "form-control" %><br>

显示所有这些内容。有没有办法在这个选择下拉列表中只有前10个,然后在另一个选择下拉列表中另外10个。谢谢!

2 个答案:

答案 0 :(得分:0)

您可以使用each_slice来构建群组。

<% i = 0 %>
<%= Price.termenums.each_slice(1) do |enums_slice| %>
  <%= f.select "termenum_#{i += 1}", Price.termenums.map { |k,v| [k.humanize, k] },
                        {:include_blank => ''}, class: "form-control" %>
<% end %>

答案 1 :(得分:0)

我决定如何。我的方法很重复,但仍然有效。我在模型中创建了一个列表。 COLOR = {&#34; X&#34; =&gt; 14}与枚举相匹配。然后,我使用了options_for_select(Price :: COLOR.map {...}来指定表单中的select标签。它似乎运行良好。