私はそのようなコードのブロックを持っています (これは動作中のバージョンです)
@full_user_schedule[0].attributes.each do |event_name, attending|
if attending
sessions_hash.each do |id, name|
event_name = event_name.sub(name, id.to_s) if event_name.include? name
end
@user_schedule.merge!(event_name => attending)
end
end
event_id
ステートメント内で変数を設定しようとしたときsessions_hash.each
、そのループの外で割り当てることができませんでした (不明な変数の警告が表示されました)。どうしてそうなるのか、また回避する方法を教えていただきたいです。
以下は、何が失敗したかの例です (変数が正しく設定されていることがログに示されていましたが、イベントが発生しました)。変数が作成されたループの外では、変数にアクセスできませんでした。
@full_user_schedule[0].attributes.each do |event_name, attending|
if attending
sessions_hash.each do |id, name|
event_id = event_name.sub(name, id.to_s) if event_name.include? name
end
@user_schedule.merge!(event_id => attending)
end
end
を明示的に返そうとしましevent_id
たが、ループを終了しました。私は何を理解していませんか?