在Rails中,我有一系列哈希(@things)看起来像这样:
[
{"id"=>1, "name"=>"firstThing"},
{"id"=>2, "name"=>"secondThing"},
{"id"=>3, "name"=>"thirdThing"}
]
我还有一个对象,其中thingId的值为2(@ otherThing.thingId = 2)。我想将数组转换为带有空选项的下拉列表并选择secondThing选项(因为它具有id = 2)。
我用一些if, else
成功构建了这个并使用它来输出一些<option value...
代码,然后意识到这可能不是Railsy的方法。不确定如何以最佳方式确定这一点。我已经在http://api.rubyonrails.org/classes/ActionView/Helpers/FormOptionsHelper.html查看了文档,但我不确定我的哈希数组是如何适应所有这些的。
答案 0 :(得分:1)
options_for_select
助手可以采用如下数组:
[
["firstThing", "1"],
["secondThing", "2"],
["thirdThing", "3"]
]
(选择助手在内部使用options_for_select,因此,根据您的使用情况,它会使这更加简单) 所以你需要的只是将你的哈希数组转换成上面的形式。例如:
arrayForOptions = arrayOfHashes.collect { |item|
[item['name'], item['id']]
}