0

我想在rails的form_for中使用一种方法来创建一个带有选项的选择标签,其中选项的值来自一个数组,而选项标签所包含的选项来自另一个数组。

例如,第一个选项是:

<option value = Array1[0]> Array2[0] </option>

我该怎么做呢?我可以使用“选择”,例如:

= form_for @activity do |f|
  = f.select(Array1, Array2, {:selected => nil, :prompt => 'Select Stage'})

尽管这种格式似乎与 api.rubyonrails.org 的 rails API 中描述的 options_for_select 一致,但我无法得到这样的工作。

4

1 回答 1

0

尝试这个:

= f.select(:method, Array2.zip(Array1), { :selected => nil, :prompt => 'Select Stage' })

zip方法会将两个数组组合成一个二维数组。

因此,例如,[1,2,3].zip([4,5,6])将返回[[1,4], [2,5], [3,6]].

select然后可以将其解释为选项文本和选项值的列表。

给定[['Male', 'm'], ['Female', 'f']],选择将返回

<option value="m">Male</option>
<option value="f">Female</option>
于 2012-06-20T23:37:57.187 回答