在 Rails 3.2 应用程序中,我试图添加一个选择字段,该字段从外部 API 调用中获取其数据。此数据以哈希数组的形式返回:
[{"name"=>"NameA", "id"=>"001"}, {"name"=>"NameB", "id"=>"002"}]
我怎样才能使用这些数据来构造一个看起来像这样的选择字段:
<select>
<option value="001"> NameA </option>
<option value="002"> NameB </option>
</select>
编辑:
感谢以下建议,我尝试了以下方法:
A:
<%= 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>
所以我认为我的问题是正确格式化散列数组,而我对操作散列数组的了解还不够,无法弄清楚如何做到这一点。
除非我完全按照磨损的方向寻找,否则我认为这个问题的关键是重新格式化这个问题顶部的数组以给出:
{"NameA" =>"001", "NameB" =>"002"}
这甚至可能吗?如果是这样,怎么办?