Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/61.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 在使用RubyonRails和Haml的当前迭代中,如何访问数组中的下一项?_Ruby On Rails_Arrays_Ruby_Haml - Fatal编程技术网

Ruby on rails 在使用RubyonRails和Haml的当前迭代中,如何访问数组中的下一项?

Ruby on rails 在使用RubyonRails和Haml的当前迭代中,如何访问数组中的下一项?,ruby-on-rails,arrays,ruby,haml,Ruby On Rails,Arrays,Ruby,Haml,我遍历一个名为questions的数组。我需要将当前的“question.title”与下一个“question.title”进行比较。它如下所示: - questions.each_with_index do |question, index| -if question.title != questions[index + 1].title do this -else do that 我得到这个错误: nomethoderor at/a

我遍历一个名为questions的数组。我需要将当前的“question.title”与下一个“question.title”进行比较。它如下所示:

- questions.each_with_index do |question, index|
      -if question.title != questions[index + 1].title
        do this
      -else
        do that
我得到这个错误:
nomethoderor at/appenders/1152123/custom_questions==>nil:NilClass的未定义方法“+”当迭代到达最后一个问题时,
问题[index+1]将出现
nomethoderor
。title
因为
问题[index+1]
nil

你可以用它来获得每一对连续的问题:

questions = %w(q1 q2 q3 q4)

questions.each_cons(2) do |one_question, next_question|
  p one_question
  p next_question
  puts
end
它输出:

"q1"
"q2"

"q2"
"q3"

"q3"
"q4"

PS:这应该少了一个问题,它将简化您的代码。您可能还有另一个问题,但是如果没有整个视图和错误消息,很难判断。

您确定错误在这一行,因为
index
永远不应该
nil
在那里?在最后一个问题上,index+1将为零。您可以将a
rescue nil
作为创可贴,但您可能应该更改您的逻辑。最后一个问题的答案不是
nil
,但它将超出数组的范围,因此需要检查
index==(questions.length-1)
这并不能解释错误,因为它说
未定义的方法+用于nil:NilClass
,但是
索引将永远不会是
nil