Rails:表单从数组/列表实例变量中选择

Muh*_*kha 6 ruby ruby-on-rails helpers

我有一个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>
Run Code Online (Sandbox Code Playgroud)

Vla*_*ich 15

这应该工作:

f.select(:heat_level, @formlist.map { |value| [ value, value ] })
Run Code Online (Sandbox Code Playgroud)

一些解释:

表单select可以处理类似哈希和类似数组的选项列表.意思是,两者 { 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 ] } 做后者