【问题标题】:Using select method in form_for in rails在rails中使用form_for中的select方法
【发布时间】:2012-06-20 23:15:54
【问题描述】:

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

【问题讨论】:

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


    【解决方案1】:

    试试这个:

    = 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>
    

    【讨论】:

    • 这成功了!唯一的事情是,要得到它,就像我在问题中显示的那样,顺序是 Array2.zip(Array1)。如果你改变它,我会接受并投票。谢谢!
    • 完成。并添加了更深入的解释。
    猜你喜欢
    • 1970-01-01
    • 2015-05-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多