Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/neo4j/3.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 NoMethodError(对于nil:NilClass,未定义方法“[]'”)_Ruby - Fatal编程技术网

Ruby NoMethodError(对于nil:NilClass,未定义方法“[]'”)

Ruby NoMethodError(对于nil:NilClass,未定义方法“[]'”),ruby,Ruby,我有一个非常奇怪的错误例子: NoMethodError (undefined method `[]' for nil:NilClass): app/controllers/main_controller.rb:150:in `block in find_data_label' app/controllers/main_controller.rb:149:in `each' app/controllers/main_controller.rb:149:in `find_data_label' a

我有一个非常奇怪的错误例子:

NoMethodError (undefined method `[]' for nil:NilClass):
app/controllers/main_controller.rb:150:in `block in find_data_label'
app/controllers/main_controller.rb:149:in `each'
app/controllers/main_controller.rb:149:in `find_data_label'
app/controllers/main_controller.rb:125:in `data_string'
app/controllers/main_controller.rb:35:in `catch'
奇怪的是,第150行(它说错误在哪里)在一个循环中,并且在决定出错之前完美地执行了11次。我不明白为什么它可以很好地工作,但在if语句返回true的循环之前失败了一行

代码如下:

  def find_data_label(label)
    @fields.each do |f|
      puts "f[:field_data]['Title'] = #{f[:field_data]['Title']}" # <--- line 150
      if f[:field_data]['Title'] == label
        return f
      end
    end
  end

提前感谢您的帮助。

您的@fields元素之一在:field\u数据中不包含标题。 在调用
@fields之前,请尝试检查@fields。每个

Rails.logger.warn '-'*40
Rails.logger.warn @fields.inspect

检查服务器日志以查看@fields中有哪些元素。

有关该错误,请参阅:


例如,也许你正在使用MongoID和一个旧版本的Ruby。

是的,就是这样。出于某种原因,输出都是分段和无序的,但拼接在一起后显示:field_data=>nil。谢谢你的帮助。可能是的副本
Rails.logger.warn '-'*40
Rails.logger.warn @fields.inspect