私はクラスのための小さくてシンプルなプロジェクトをやっています。何らかの理由で変数を使って値にアクセスできません。Rubyの配列 - 値にアクセスできない
これが私のクラスである:
#Create random fact array
class RandomFact
def initialize()
@randomNum = rand(5)
end
def getQuestion
randomNum = @randomNum
questionArray = Array.new
questionArray[0] = "Do you liek mudkipz?"
questionArray[1] = "Question2"
questionArray[2] = "Three"
questionArray[3] = "Reddit"
questionArray[4] = "4chan"
puts questionArray[randomNum]
return randomNum
end
def getAnswer(randomNum,answer)
answerArray = Array.new
answerArray[0] = "one"
answerArray[1] = "two"
answerArray[2] = "three"
answerArray[3] = "four"
answerArray[4] = "five"
return answerArray[randomNum]
end
end
(私はgetAnswer方法の問題点、特にanswerArray配列が生じています)これはクラスに私のクラスである:今
randomNum = cgi['randomNum']
answer = cgi['answer']
puts newQuestion.getAnswer(randomNum,answer)
事randomNumは以前のフォームの値を保持しているということです。フォームから値を取得する場所の下にrandomNumを表示すると、私はそれを取得します。
私はメソッドgetAnswerの中にrandomNumを出力していれば取得できます。
answerArray [0]を印刷すると値が得られます。
answerArray [randomNum]を印刷しても何も得られません。
これは、上記のgetQuestionメソッドの正確なコピーであり、1つは機能します。どんな入力?
我々はrandomNumと答えの詳細を見ることができるように 'のp randomNum'と'のp answer'を行います。 FYI 'p obj'は' puts obj.inspect'に相当します - 'puts obj.to_s'よりも多くの情報を提供し、一般的にはデバッグにもっと便利です。 – rampion