Ruby on rails 如何根据Ruby中某个索引中包含的值来比较数组?

Ruby on rails 如何根据Ruby中某个索引中包含的值来比较数组?,ruby-on-rails,arrays,ruby,indexing,string-comparison,Ruby On Rails,Arrays,Ruby,Indexing,String Comparison,我有两个数组,一个是字符串,另一个是答案,也是字符串,数组中第一个位置的问题的答案@questions也在第一个位置,但在@answers中,所有问题都是一样的,所以我想做的是向用户提问,如果他没有回答预期的问题,他会要求再试一次 这是我目前的代码: 但是我得到了以下错误:file_mng.rb:72:inblock in play:nil:NilClass(nomethoderor)的未定义方法 def播放 排列数组 #方法arrange_array在中填充数组@questions和@answ

我有两个数组,一个是字符串,另一个是答案,也是字符串,数组中第一个位置的问题的答案@questions也在第一个位置,但在@answers中,所有问题都是一样的,所以我想做的是向用户提问,如果他没有回答预期的问题,他会要求再试一次

这是我目前的代码: 但是我得到了以下错误:file_mng.rb:72:in
block in play:nil:NilClass(nomethoderor)的未定义方法

def播放
排列数组
#方法arrange_array在中填充数组@questions和@answers
#一种方法是,将问题的答案放在问题的第一个位置
#数组@questions也位于数组@answers的第一个位置,
#因此索引与数组匹配。
放
@问题。每一个带有索引的问题,我|
提出问题
放
输入“键入您的答案”
放
answer=get.chomp
边回答边回答!=@答复[i]
放
放入“不正确,请重试”
结束
放
写“正确!”
结束
放
提出“问题结束了,祝贺你!”
结束
def阵列
#任何位于奇数行的东西都是一个问题
#在一条平线上画出的每件事都是一个答案
File.open(“questionary.out”)。每行|
i=i+1
如果i%2==0

@答案错误在这一行:

while answer != @answers[i]
如错误消息所示,您正在
nil
上调用
[]
,这意味着
@answers
nil
。您应该查看您的
arrange\u array
方法,因为它似乎没有设置
@answers


另外,这一行还有另一个问题:您正在使用
,而
应该使用
if
。一旦你解决了
@answers
问题,当答案不正确时,这将无限次地打印“不正确,再试一次”。

这太奇怪了,因为当我从play方法内部打印两个数组时,它会打印它们的实际值,而不是空的,我只是将排列数组添加到我的问题中,如果您不介意看一下:)
arrange\u array
将无法正常工作。如果尚未初始化
i
,则无法执行
i=i+1
。它没有引发错误这一事实向我表明,
每行
块从未被输入,尽管我无法解释这一点。很抱歉,在将代码复制到堆栈溢出时,我错过了I变量初始化(I=0),我确信该方法是有效的,因为当我打印数组时,它们都是文件中的数据,这就是让我困惑的想法
while answer != @answers[i]