Abr*_*ram 0 ruby hash ruby-on-rails
我在尝试:
Product.first.attributes.map{|k, v| "#{k.to_sym} => #{v}"}
Run Code Online (Sandbox Code Playgroud)
但是,我收到如下输出:
["id => 53", "name = blah"], ["id => 54", "name = blahblah"]
Run Code Online (Sandbox Code Playgroud)
我想要的是:
[{:id=>53,:name=>"blah"}, {:id=>54,:name=>"blahblah"}]
Run Code Online (Sandbox Code Playgroud)
看起来你只是试图将Product.first.attributesHash 转换为带有符号而不是字符串符号的哈希.你可以通过调用symbolize_keysRails(实际上是ActiveSupport)修补Hash来简化自己:
h = Product.first.attributes.symbolize_keys
Run Code Online (Sandbox Code Playgroud)
当你这样说:
"#{k.to_sym} => #{v}"
Run Code Online (Sandbox Code Playgroud)
你只是制作一个看起来有点像哈希的字符串,这并不是非常有用.如果你想象很长的方式对键进行符号化,你可能会使用以下方法生成一个数组数组:
...map { |k, v| [ k.to_sym, v ] }
Run Code Online (Sandbox Code Playgroud)
然后把整个东西喂给Hash[]:
h = Hash[Product.first.attributes.map { |k, v| [ k.to_sym, v ] }]
Run Code Online (Sandbox Code Playgroud)
我不打扰所有的噪音,只是使用symbolize_keys并转向更有趣的问题.
| 归档时间: |
|
| 查看次数: |
3641 次 |
| 最近记录: |