Как добавить значение в опцию выбора (рельсы simple_form)? - PullRequest
1 голос
/ 13 июня 2019

У меня есть простой массив:

@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 Ответ

1 голос
/ 13 июня 2019

Вам нужно передать массив массивов длины 2, который содержит значение параметра и отображаемое имя параметра.

Поскольку у вас уже есть массив с отображаемым именем, вы можете создать необходимый массив следующим образом:

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