0

以下のように、Ruby で と呼ばれるハッシュのハッシュを使用してMYMOVIESいます。

    {"127 Hours"=>
       {"title"=>"127 Hours",
       "year"=>"2010",
       "plays"=>1,
       "last_played"=>1300489200,
       "seen_date"=>"19/3/2011",
       "imdb_id"=>"tt1542344",
       "rating"=>"6",
       "omdbapiurl"=>"http://www.omdbapi.com/?t=127 Hours&y=2010"},
    "Zombieland"=>
       {"title"=>"Zombieland",
       "year"=>"2009",
       "plays"=>1,
       "last_played"=>1290207600,
       "seen_date"=>"20/11/2010",
       "imdb_id"=>"tt1156398",
       "rating"=>"7",
       "omdbapiurl"=>"http://www.omdbapi.com/?t=Zombieland&y=2009"}}

ここで、最初にネストされたハッシュのすべてのキー (つまり、タイトル、年、再生数、...、omdbapiurl) を取得したいと考えています。

私は試しました:

   mynestedhash = MYMOVIES.first
   puts mynestedhash.keys.to_s

しかし、私はエラーが発生します:

    undefined method `keys' for #<Array:0x801c56f8> (NoMethodError)

どうすればいいですか?

4

3 に答える 3

2

すべての内部ハッシュが同じキーを持っている場合、以下で十分です

first_outer_key, first_outer_value = MYMOVIES.first 
first_inner_hash = first_outer_value # change name to show what we have
inner_keys = first_inner_hash.keys

内部ハッシュのキーが異なる可能性がある場合は、Priti と toro2k がソリューションで行ったように結合する必要があります。

于 2013-07-10T09:13:41.767 に答える