У меня есть простой массив:
@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] }
Большое спасибо