如何在选择选项(simple_form导轨)中增加价值?

时间:2019-06-13 19:38:58

标签: ruby-on-rails simple-form

我有一个简单的数组:

@fields = %w(full_name name pseudo).map{ |key| I18n.t("users.security.#{key}", locale: :en) }

在收集表单中,我想获取一个整数(如数组索引)。

        <%= f.input :display_name,
                    :as => :select,
                    :collection => @fields,
                    %>

显示为:

 <option selected="selected" value=0>full name</option>
 <option value=1>name</option>
 <option value=2>pseudo</option>

我该怎么做?

1 个答案:

答案 0 :(得分:1)

您需要传递一个长度为2的数组,其中包含选项值和选项显示名称。

由于已经具有显示名称的数组,因此可以按以下方式构造必要的数组:

f.input :display_name,
  as: :select,
  collection: @fields.map.with_index { |v, i| [i, v] }