2012-02-19 3 views
0

userアレイの中にinvitations_attributesアレイを持つアレイがあります。 invitations_attributesアレイの内部に別のアレイがあります。ここで構造されていますネストされた属性に基づいて配列のカウントを取得するにはどうすればよいですか?

"user"=>{"invitations_attributes"=>{"6"=>{"email"=>""}, "7"=>{"email"=>""}, "0"=>{"email"=>"[email protected]"}, "1"=>{"email"=>""}, "2"=>{"email"=>""}, "3"=>{"email"=>""}, "4"=>{"email"=>""}, "5"=>{"email"=>""}}}}

私が何をしたいのかはemail値が空白でないinvitations_attributesの数を取得することです。したがって上のケースでは、カウントは1になります。

答えて

3

表示されているのは、配列ではなくネストされたハッシュです。与えられたuserハッシュをあなたのように記述:

user["invitation_attributes"].count{ |key, value| value["email"].present? } 
+0

これは働いた!なぜアイテム[1]を置くのか説明できますか?どのように変数がありますか? –

+0

私は答えを改訂しました。ハッシュのブロックに1つの引数だけを渡すと、配列を与えるので、最初のものは '[" 6 "、{" email "=>"}} 'だったでしょう。場所1は '{" email "=>" "}'となります。しかし、よりよい方法は、2つの引数keyとvalueを与え、次に値をチェックすることだけです。 –

+0

hmmm ...とても面白いです。私はこれがどのように機能するのかを見直さなければならないが、それは素晴らしいものだった。本当にありがとう! –

関連する問題