gpt4 book ai didi

ruby - NoMethodError(未定义方法 `[]' 为 nil :NilClass)

转载 作者:数据小太阳 更新时间:2023-10-29 07:00:01 25 4
gpt4 key购买 nike

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

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

这是我得到错误之前的输出:

f[:field_data]['Title'] = Name
f[:field_data]['Title'] = Name
f[:field_data]['Title'] = Mobile number
f[:field_data]['Title'] = Email
f[:field_data]['Title'] = Date of birth
f[:field_data]['Title'] = Gender
f[:field_data]['Title'] = Street name
f[:field_data]['Title'] = Street number
f[:field_data]['Title'] = My local Puckles store is in
f[:field_data]['Title'] = Suburb
f[:field_data]['Title'] = Postcode
Completed 500 Internal Server Error in 2047ms

在此先感谢您的帮助。

最佳答案

您的一个@fields 元素在:field_data 中不包含标题。在调用 @fields.each 之前尝试检查 @fields:

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

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

关于ruby - NoMethodError(未定义方法 `[]' 为 nil :NilClass),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10810311/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com