7

我有一个 Rails 应用程序,在表单中,我有一个表单选择(下拉列表)。例如,用户可以从 1,2,3,4,5 中进行选择

例如,我将这些值作为实例变量存储在数组中,例如:

@formlist = [1,2,3,4,5]

我怎样才能简单地将数组放入表单选择助手中,而不是单独列出每个项目。目前我的代码是:

<tr>
  <th><%= f.label(:heat_level, "Heat Level") %></th>
  <td><%= f.select(:heat_level,{ 1 => "1", 2 => "2", 3 => "3", 4 => "4", 5 => "5"}) %></td>
</tr>
4

1 回答 1

18

这应该工作:

f.select(:heat_level, @formlist.map { |value| [ value, value ] })

一些解释:

formselect可以处理类似哈希和类似数组的选项列表。意思是,两者 { 1 => "1", 2 => "2", 3 => "3", 4 => "4", 5 => "5"}

[[1, 1], [2, 2], [3, 3], [4, 4], [5, 5]]

将工作。

@formlist.map { |value| [ value, value ] }后者呢

于 2012-11-20T15:01:21.060 回答