Rubymine は、見つかった変数に未定義の可能性があるというフラグを立てます。答えは、begin の外で見つかった変数を移動することだと思っていましたが、終了することのないタイトなループに入ります。これはブロックスコープの問題だと確信していますが、問題が何であるかを理解するためのルビーの経験がありません。find がbegin内で宣言されているため、これにフラグが付けられていると想定しています。したがって、ここでの質問は..この有効なコードですか、それともこのインスタンスでRubymineのインスペクターが間違っていますか?
begin
found = false
@some_collection.keys.each do |key|
found = evaluate_collection(@some_collection[key], key) unless found
end
end while found