でexistant私はハッシュのハッシュのハッシュの値になり、いくつかのRubyのコードを書いているかどうかを判断し....キーの連鎖がハッシュ
amz_price_info.raw["Offers"]["Offer"]["OfferListing"]["Price"]["FormattedPrice"]
を、私はこれにアクセスしたいですコードの構造体が使用可能な場合にのみコード化します。現在のところ、私のコードは次のとおりです。
#amz_price_info.raw.class == Hashie::Mash
price = if amz_price_info.raw["Offers"]
if amz_price_info.raw["Offers"]["Offer"]
if amz_price_info.raw["Offers"]["Offer"]["OfferListing"]
if amz_price_info.raw["Offers"]["Offer"]["OfferListing"]["Price"]
if amz_price_info.raw["Offers"]["Offer"]["OfferListing"]["Price"]["FormattedPrice"]
amz_price_info.raw["Offers"]["Offer"]["OfferListing"]["Price"]["FormattedPrice"]
end
end
end
end
end
私のコードはあまり冗長でないようにリファクタリングするにはどうすればよいですか?この方法は、パスが存在しない場合nil
を返し、あなたがキーの任意の数のハッシュを下に検索できるようになります
これはまた、{ 'keys.inject(amz_price_info.raw)のように書くことができます。 |価格、k | (価格|| {})[k]} ' –