В приложении Rails 3.2 я пытаюсь добавить поле выбора, которое берет его данные из внешнего вызова API. Эти данные возвращаются как массив хэшей:
[{"name"=>"NameA", "id"=>"001"}, {"name"=>"NameB", "id"=>"002"}]
Как я могу использовать эти данные для построения поля выбора, которое выглядит примерно так:
<select>
<option value="001"> NameA </option>
<option value="002"> NameB </option>
</select>
EDIT:
Благодаря приведенным ниже предложениям я пробовал следующее:
А:
<%= select_tag 'model[field]', options_from_collection_for_select(@hash, :id, :name) %>
Дает ошибку:
undefined method `name' for {"name"=>"NameA", "id"=>"001"}:Hash
В:
<%= select_tag 'model[field]', options_from_collection_for_select(@hash) %>
Исправляет ошибку, но генерирует неправильную разметку
<option value="{"name"=>"NameA", "id"=>"001"}"> {"name"=>"NameA", "id"=>"001"}</option>
Итак, я думаю, что моя проблема заключается в правильном форматировании массива хэшей, и я не знаю достаточно о том, как манипулировать массивами хешей, чтобы решить, как это сделать.
Если я полностью не посмотрю на worng-направление, я думаю, что ключом к этой проблеме является переформатирование массива в верхней части этого вопроса, чтобы дать:
{"NameA" =>"001", "NameB" =>"002"}
Возможно ли это? И если да, то как?