У меня есть этот код:
<%= f.label :lang %><br /> <%= f.select :lang_id, @langs %>
он генерирует HTML так:
<label for="entry_lang">Lang</label><br /> <select id="entry_lang_id" name="entry[lang_id]"> <option value="pl">1</option> <option value="en">2</option> </select>
Теперь я хочу, чтобы "pl" и "en" были видимы для пользователя, а не целые числа. Итак, я попробовал:
<%= f.label :lang %><br /> <%= f.select :lang_name, @langs %>
И это не работает. Как это сделать правильно?
Похоже, ваш массив @langs имеет формат:
[[1, "pl"], [2, "en"], ....]
Это должно быть наоборот;сначала отображаемое имя, затем идентификатор:
[["pl", 1], ["en", 2], ....]