0
Product.first.attributes.map{|k, v| "#{k.to_sym} => #{v}"}
不过,我收到输出如下:
["id => 53", "name = blah"], ["id => 54", "name = blahblah"]
我要的是:
[{:id=>53,:name=>"blah"}, {:id=>54,:name=>"blahblah"}]
Product.first.attributes.map{|k, v| "#{k.to_sym} => #{v}"}
不过,我收到输出如下:
["id => 53", "name = blah"], ["id => 54", "name = blahblah"]
我要的是:
[{:id=>53,:name=>"blah"}, {:id=>54,:name=>"blahblah"}]
看起来你只是试图将Product.first.attributes
哈希值转换为哈希值而不是字符串的键符号。你可以很容易对自己通过调用Rails的(实际上的ActiveSupport)已经修复到哈希symbolize_keys
:
h = Product.first.attributes.symbolize_keys
当你这样说:
"#{k.to_sym} => #{v}"
你只是生产字符串,看起来有点像哈希,这不是非常有用。如果你想以象征键长的路,你会使用可能产生一个数组的数组:
...map { |k, v| [ k.to_sym, v ] }
再喂那整个事情Hash[]
:
h = Hash[Product.first.attributes.map { |k, v| [ k.to_sym, v ] }]
我不会理会尽管如此,只要使用symbolize_keys
并转向更有趣的问题。
非常感谢您的好评。相信与否我想知道漫长的道路。 – Abram