将嵌套属性分配给 build_object

Assigning nested attributes to build_object

他们有没有一种方法可以创建不循环的散列?

 {"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

试试这个,

a = {"0"=>{":comment_id"=>"52"}, "1"=>{":comment_id"=>"53"}, "2"=>{":comment_id"=>"15"}}
res = a.keys.map{|k,v| a.delete(k)}

希望对您有所帮助。

随便用,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"}]