我想在rails中的form_for中使用一个方法来创建一个带有选项的select标签,其中选项的值来自一个数组,而选项标签包含的选项来自另一个数组。
例如,第一个选项是:
<option value = Array1[0]> Array2[0] </option>
我该怎么做?我可以使用'select',例如:
= form_for @activity do |f|
= f.select(Array1, Array2, {:selected => nil, :prompt => 'Select Stage'})
我无法得到类似这样的东西,即使这种格式与api.rubyonrails.org的rails API中描述的options_for_select一致。
答案 0 :(得分: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']]
,select将返回
<option value="m">Male</option>
<option value="f">Female</option>