将嵌套属性分配给 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"}]
他们有没有一种方法可以创建不循环的散列?
{"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"}]