私はこのように構造化されたハッシュの配列を持っています
[{:payer_id=>1, :price=>20}, {:payer_id=>2, :price=>30}]
特定の価格にアクセスするにはどうすればよいpayer_id
ですか? この質問は基本的なことですが、わかりません。
私はこのように構造化されたハッシュの配列を持っています
[{:payer_id=>1, :price=>20}, {:payer_id=>2, :price=>30}]
特定の価格にアクセスするにはどうすればよいpayer_id
ですか? この質問は基本的なことですが、わかりません。
あなたはこれを行うことができます
payers = [{:payer_id=>1, :price=>20}, {:payer_id=>2, :price=>30}]
payer_id = 2
payers.detect { |payer| payer[:payer_id] == payer_id }.try(:[], :price)
# => 30
以前detect
は、id に一致する最初の支払人を取得してから、その価格を取得していました。支払人が一致しなかった場合は、nil
返されたのでtry
、価格を取得するために使用できるため、支払人が見つからなくてもコードでエラーが発生しません。
※try
は ActiveSupport の一部ですので、使用しない場合は に置き換え.try(:[], :price)
て[:price]
ください。