一个非常简单的问题 - 我目前有以下代码:
render :json => @items.map { |item| {item.id => item.value} }
这以以下格式输出:
[{"12":"1.6 5d"},{"13":"1.7 16V 5d"},{"14":"1.6 L 5d"}]
如何重新格式化代码以使其在没有内部大括号的情况下输出?(像这样):
{"12":"1.6 5d","13":"1.7 16V 5d","14":"1.6 L 5d"}
谢谢!
一个非常简单的问题 - 我目前有以下代码:
render :json => @items.map { |item| {item.id => item.value} }
这以以下格式输出:
[{"12":"1.6 5d"},{"13":"1.7 16V 5d"},{"14":"1.6 L 5d"}]
如何重新格式化代码以使其在没有内部大括号的情况下输出?(像这样):
{"12":"1.6 5d","13":"1.7 16V 5d","14":"1.6 L 5d"}
谢谢!
你可以使用reduce方法
@items.reduce({}) do |hash, kv|
hash[kv.first] = kv.last
hash
end
我看到的另一个常见技巧,如果我能做对的话:
Hash[*@items.map { |item| [item.id,item.value] }.flatten]
编辑根据其他人的说法,这是 ruby 1.8.6 或更低版本,但较新的 rubies 可以简单地:
Hash[@items.map { |item| [item.id,item.value] }]