如何在 select 选项 (simple_form rails) 中添加值?

How to add value in select option (simple_form rails)?

我有一个简单的数组:

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

我该怎么做?

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

由于您已经有了一个包含显示名称的数组,您可以按如下方式构造必要的数组:

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