0

これはループしないようにこのハッシュを作成する方法ですか?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 
+0

あなたは、コードの行の下に試してみてくださいすることができます。 @ article.build_comments([{"comment_id" => "52"}])。build_entity –

+0

質問はあまり明確ではありません – yossico

答えて

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"}]

+0

@ on-the-way、 '.values'メソッドを使用してください。 – Sravan

+0

彼らは '[{:comment_id =>" 52 "}、{:comment_id =>" 53 "}、{:comment_id =>" 15 "}]'キーのダブルQoutを削除する方法ですか? –

+0

'object.values.map {| x | x.class; x.inject({}){|メモ、(k、v)|メモ[k.gsub( ':'、 '')。to_sym] = v;メモ}} ' – Sravan

0

はこれを試してみてください、

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

が、これはあなたを助けることを願っています。

+0

は効果的にループではありませんか? – David

+0

map関数はループよりはるかに優れています。 –

+0

それは反復を使用しています...それはループです...それはループよりも何を意味しますか? – David

関連する問題