在rails中使用form_for中的select方法

时间:2012-06-20 23:15:54

标签: ruby-on-rails select form-for

我想在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一致。

1 个答案:

答案 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>