他们是否可以创建此哈希而不循环?
{"0"=>{":comment_id"=>"52"}, "1"=>{":comment_id"=>"53"}, "2"=>{":comment_id"=>"15"}}
输出:
[{":comment_id"=>"52"}, {":comment_id"=>"53"}, {":comment_id"=>"15"}]
所以它可以执行:
@article = Article.new(article_params)
@article.build_comments([{:comment_id=>"52"}, {:comment_id=>"53"}, {:comment_id=>"15"}])
@article.save
答案 0 :(得分:3)
只需使用, object.values
<强> object = {"0"=>{":comment_id"=>"52"}, "1"=>{":comment_id"=>"53"}, "2"=>{":comment_id"=>"15"}}
强>
<强> object.values
强>
<强> => [{":comment_id"=>"52"}, {":comment_id"=>"53"}, {":comment_id"=>"15"}]
强>
要将密钥转换为符号,
<强> object.values.map { |x| x.class;x.inject({}){|memo,(k,v)| memo[k.gsub(':','').to_sym] = v; memo} }
强>
O / P:
<强> [{:comment_id=>"52"}, {:comment_id=>"53"}, {:comment_id=>"15"}]
强>
答案 1 :(得分:0)
试试这个,
a = {"0"=>{":comment_id"=>"52"}, "1"=>{":comment_id"=>"53"}, "2"=>{":comment_id"=>"15"}}
res = a.keys.map{|k,v| a.delete(k)}
希望这会对你有所帮助。