タイトル通りにしようと思います。これが私のコードです:
school.each { |x| school[:students][x].merge!(semester:"Summer") }
上記の「[x]」に問題を特定したと思います。「[2]」などの配列位置を代入すると、正常に機能します。反復をどのように機能させることができますか?
上記の情報では不十分な場合、またはより良い解決策を提供したい場合は、以下の詳細を参照してください。ありがとう!
私が得るエラーメッセージ:
file.rb:31:in []': no implicit conversion of Array into Integer (TypeError)
from file.rb:31:in
block in ' from file.rb:31:in each'
from file.rb:31:in
'
以下の変更前のネストされたハッシュ:
school = {
:name => "Happy Funtime School",
:location => "NYC",
:instructors => [
{:name=>"Blake", :subject=>"being awesome" },
{:name=>"Ashley", :subject=>"being better than blake"},
{:name=>"Jeff", :subject=>"karaoke"}
],
:students => [
{:name => "Marissa", :grade => "B"},
{:name=>"Billy", :grade => "F"},
{:name => "Frank", :grade => "A"},
{:name => "Sophie", :grade => "C"}
]
}
最後の 4 つのハッシュのそれぞれに :semester=>"Summer" を追加しようとしています。これが私が行こうとしているものです:
# ...preceding code is the same. Changed code below...
:students => [
{:name => "Marissa", :grade => "B", :semester => "Summer"},
{:name=>"Billy", :grade => "F", :semester => "Summer"},
{:name => "Frank", :grade => "A", :semester => "Summer"},
{:name => "Sophie", :grade => "C", :semester => "Summer"}
]
}