Ruby:尝试获取哈希数组上的枚举器时,nil:NilClass 的未定义方法“[]”

2024-04-07

我正在尝试循环哈希数组。当我到达获取枚举器以开始循环的位置时,出现以下错误:

undefined method `[]' for nil:NilClass

我的代码如下所示:

def extraireAttributs (attributsParam)
  classeTrouvee = false
  scanTrouve = false
  ownerOSTrouve = false
  ownerAppTrouve = false
  resultat = Hash.new(0)
  attributs = Array(attributsParam)

  attributs.each do |attribut| #CRASHES HERE!!!
    typeAttribut = attribut['objectTypeAttribute']
    [...]

我检查了调试模式以确保attributsParams论证和attributs变量不为零或空。两者(因为它们是相同的!)都包含 59 个哈希对象,但我仍然无法在数组上获取枚举器。

为什么我不断收到此错误?

Thanks!


undefined method `[]' for nil:NilClass说你试图做something[index] but something is nil。 Ruby 不会让你使用nil作为数组(即调用[]的方法)。

问题不在attributs.each行,但在下面的行上调用[]方法上attribut.

typeAttribut = attribut['objectTypeAttribute']

这表明了一些东西attributs为零。如果发生这种情况attributsParam是一个包含 nil 的列表,如下所示。

attributsParam = [nil];
attributs = Array(attributsParam);

# [nil]
puts attributs.inspect

调试它的最简单方法是添加puts attributs.inspect就在循环之前。

还要考虑您是否真的需要attributs = Array(attributsParam)行或者如果它已经是某物可枚举 https://ruby-doc.org/core/Enumerable.html.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Ruby:尝试获取哈希数组上的枚举器时,nil:NilClass 的未定义方法“[]” 的相关文章

  • 如何使用 Retrofit 解析嵌套 json....?

    我不知道该怎么办使用 Retrofit 解析 json 熟悉使用 Retrofit 解析简单的 json 但不熟悉解析嵌套Json using Retrofit 这是我的 Json 数据 current observation image
  • Watir 更改 Mozilla Firefox 首选项

    我正在使用 Watir 运行 Ruby 脚本来自动执行一些操作 我正在尝试自动将一些文件保存到某个目录 因此 在我的 Mozilla 设置中 我将默认下载目录设置为桌面并选择自动保存文件 然而 当我开始运行脚本时 这些更改并未反映出来 似乎
  • 指向特征矩阵的指针数组

    我在代码中使用 Eigen 的 MatrixXd 矩阵 在某个时刻我需要一个 3D 矩阵 由于 Eigen 没有三维矩阵类型 因为它仅针对线性代数进行了优化 因此我创建了一个 MatrixXd 类型的指针数组 Eigen MatrixXd
  • 如何在 perl 中合并两个数组,交替每个数组中的值

    假设我有 2 个如下所示的数组 a1 Vinay Raj harry b1 dude rock 合并后我想要这样的结果 Vinay dude Vinay rock Raj dude Raj rock harry dude harry roc
  • Ruby 枚举器中的“break”与“raise StopIteration”

    如果我使用 Ruby Enumerators 来实现生成器和过滤器 generator Enumerator new do y x 0 loop do y lt lt x x 1 break if x gt CUTOFF end end l
  • 来自索引范围 Swift 的新数组

    我怎样才能做这样的事情 从数组中取出前 n 个元素 newNumbers numbers 0 n 目前出现以下错误 error could not find an overload for subscript that accepts th
  • 在多个数组中搜索字符串,然后设置 var - jQuery

    我正在寻找基于字符串存在于哪个数组中设置一个变量 例如 var primary red blue yellow var secondary orange purple green 然后检查 purple 并返回它在 secondary 数组
  • 如何在 Rails 4 中使用 params.require

    我有一个像这样的私有方法 用于有四个字段的注册表单 firstname email password and confirm password 我不知道如何检查password confirmation def user params pa
  • Ruby 中的任务/未来

    代表潜在延迟的异步计算并且可以订阅其完成的模式的惯用 Ruby 模拟是什么 即类似于 NET 的东西System Threading Task 或Python 3 xconcurrent futures future 请注意 这并不一定意味
  • Rails 4:资产未在生产中加载

    我正在尝试将我的应用程序投入生产 但图像和 CSS 资源路径不起作用 这是我目前正在做的事情 图像资源位于 app assets images image jpg 样式表位于 app assets stylesheets style css
  • 如何使用本地安装的gems执行Ruby程序?

    我已经使用安装了我的依赖项 bundle package 然后将它们传输到离线服务器并运行 gt bundle install local Using mime types 1 19 Using rest client 1 6 7 Usin
  • Heroku 部署错误

    在 Windows 环境中 尝试部署到 Heroku 时出现以下错误 C Ruby lib ruby gems 1 8 gems heroku 1 9 13 lib heroku commands base rb 32 in 没有这样的文件
  • “rmagick”gem 安装问题

    我在尝试在 centos 上安装 rmagick gem 时遇到问题 以下是我得到的输出 谁能帮我识别一下我缺少什么包裹 我已经安装了所有提到的另一个堆栈溢出线程 RMagick安装错误 https stackoverflow com qu
  • D 动态数组初始化、stride和索引操作

    抱歉 这成为了有关数组的三重问题 我认为 动态 数组在 D 中确实很强大 但以下问题已经困扰我一段时间了 在 C 中 我可以轻松地分配具有指定值的数组 但在 D 中 我还没有找到这样做的方法 当然下面的内容是没有问题的 int a new
  • 没有要加载的文件 - ffi_c (LoadError)

    这个问题困扰了我几天 每当我使用 bring to front 方法时 require rubygems require watir browser Watir Browser new browser bring to front 我收到此
  • 用户未定义的方法 attr_accessible 错误

    我正在尝试创建某种登录 我创建了一个用户脚手架并将此代码放在我的 user rb 中 class User lt ActiveRecord Base attr accessible name password digest password
  • 如何在 Linux 中编写文本模式 GUI? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 当我编写脚本 程序时 我经常想弹出一个简单的文本 gui 来提示输入 我该怎么做 例如 来自 Shel
  • 将 numpy 代码点数组与字符串相互转换

    我有一个很长的 unicode 字符串 alphabet range 0x0FFF mystr join chr random choice alphabet for in range 100 mystr re sub W mystr 我想
  • ruby 正则表达式匹配模式的多次出现

    我正在寻找构建一个 ruby 正则表达式来匹配模式的多次出现并将它们返回到数组中 模式很简单 即 两个左括号 一个或多个字符 后跟两个右括号 这就是我所做的 str Some random text lead first name and
  • 红宝石接球和效率

    catch在 Ruby 中意味着跳出深度嵌套的代码 在 Java 中 例如用Java也可以达到同样的效果try catch用于处理异常 但它被认为是糟糕的解决方案 而且效率非常低 在 Ruby 中 我们有处理异常的方法begin raise

随机推荐

  • Firebase 托管未验证 GoDaddy 中的 TXT 记录

    我部署了我的应用程序 现在我正在尝试添加我的自定义 URL 我按照 Firebase 的说明将他们的 TXT 记录添加到我的 DNS GoDaddy 中 但现在 Firebase 表示尚未得到验证 我认为我做错了什么 但这里没有什么可搞乱的
  • QVBoxLayout:如何使用 Qt 设计器将小部件对齐到顶部

    我仅将 qt 设计器用于 ui 布局 这与这个问题几乎是同一个问题 QVBoxLayout 如何将小部件垂直对齐到顶部而不是中心 https stackoverflow com questions 10082299 qvboxlayout
  • Php:查找 Chrome 和 Safari 浏览器

    我使用下面的代码来查找用户代理 user agent SERVER HTTP USER AGENT if preg match MSIE i user agent echo Internet Explorer if preg match F
  • 安装分析后,我的 Worklight 6.2 控制台上没有运行时

    我刚刚安装了Worklight 6 2服务器 使用配置工具部署了一个简单的项目 并且运行正常 然后我按照知识中心的说明安装分析 之后 当我在浏览器中打开 WL 控制台时 我收到 找不到运行时 分析似乎运行良好 我的 war 文件位于 Lib
  • 如何在teamcity中运行e2e测试,如何在后台运行服务器并运行e2e

    如何在 teamcity 构建步骤中运行我需要的服务器以及 e2e 测试 我对我的 Angular 2 应用程序进行了 Protractor e2e 测试 我有一个有趣的 Angular cli 和 gulp 组合 但请耐心等待 这是我在本
  • 使用 SUBSTR Oracle SQL 将 SPACE 添加到 CONCAT

    我试图将两列连接在一起 并用空格分隔 第一列需要 SUBSTR 另一列则不需要 我写了这个查询 SELECT CONCAT SUBSTR FIRST NAME 1 1 LAST NAME AS NAME FROM OEHR EMPLOYEE
  • 在caffe prototxt 文件中。 TRAIN 和 TEST 阶段做什么?

    我是咖啡新手 感谢你们 in https github com BVLC caffe blob master src caffe proto caffe proto https github com BVLC caffe blob mast
  • 为什么在 PHP 中使用 FPDF 时亚洲 unicode 字符没有出现在 PDF 上?

    我在用FPDF http www fpdf org 创建 PDF 并tFPDF http www fpdf org en script script92 php允许使用 unicode 字符 例如中文 日文或韩文 我正在使用 tFPDF 示
  • 如何测试角度事件?

    我需要测试事件是否正确发出或广播 并手动触发事件 最好的方法是什么 如果您只需要对事件触发和捕获进行一些测试 我就是这样做的 为了确保某个事件被触发 emit ed or broadcast ed 间谍是正确的选择 您需要对将调用的范围的引
  • ICommand MVVM 实现

    因此 在我正在执行的这个特定 MVVM 实现中 我需要几个命令 我真的厌倦了逐个实现 ICommand 类 因此我想出了一个解决方案 但我不知道它有多好 因此我们将非常感谢这里任何 WPF 专家的意见 如果您能提供更好的解决方案 那就更好了
  • 电子预警系统。如何在没有初始同步的情况下获取最新的SyncState?

    假设我的文件夹中有 100 000 条消息 我希望能够与最新更改同步 但我不需要任何旧消息 请求初始同步 SyncFolderItems null syncState 会带回所有 100 000 条消息 我不需要 如何在不从服务器读取 10
  • 如何获取一个月中的工作日列表?

    在另一个问题中 https stackoverflow com questions 3849975 how to get all dates in a given month in c它展示了如何获取一个月中的所有天数 我需要同样的东西 但
  • JMS 有哪些替代方案? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • PipedInputStream - 如何避免“java.io.IOException:管道损坏”

    我有两个线程 其中一个写入 PipedOutputStream 另一个从相应的 PipedInputStream 读取 背景是一个线程正在从远程服务器下载一些数据 并通过管道流将其复用到多个其他线程 问题是有时 尤其是下载大文件时 gt 5
  • 路由应用程序覆盖文件[关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 我最近将我的游戏提交到了 App Store 它最近已获得批准 正在 App Store 处理 当我单击我的应用程序时 它显示 路由应用程序覆盖文件
  • GWT-出口商。工作示例

    我有一个 Java 库 我需要将其转换为 JS 我找到了解决方案GWT 创建实用的 javascript 库 https stackoverflow com questions 3125556 gwt to create utility j
  • 打开第二个 fancybox 在另一个 fancybox 中!

    嘿 我的花式盒子遇到了麻烦 我正在一个 fancybox 中启动一个表单 一般是通过fancybox以iframe方式打开 因为它是作为其他域的小部件启动的 在此 iframe 中 我打开第二个 fancybox 来显示验证错误 所有这一切
  • 展开方案中的函数

    Goal 实施unfold仅使用两个参数的函数 论据 第一个参数是 f 它接受某种类型 I 的初始值并返回 nil 或两个元素的 cons 对 这两个元素中的第一个是某种类型 A 的列表中的下一个元素 下一个初始值又是某些类型 I 第二个参
  • 我如何编写一个 SQL 查询来检查列是否为零,它将更新它,如果不是,它将移动到下一列?

    详细地说 我目前正在构建一个应用程序 让人们创建帐户并登录 他们提供的信息已保存到我的数据库中 我的数据库仅包含一张保存用户信息的表 每一行都是一个用户 这是一张可以让您更好地了解的图片 前六列包含用户信息 但是 在我的应用程序中 用户有一
  • Ruby:尝试获取哈希数组上的枚举器时,nil:NilClass 的未定义方法“[]”

    我正在尝试循环哈希数组 当我到达获取枚举器以开始循环的位置时 出现以下错误 undefined method for nil NilClass 我的代码如下所示 def extraireAttributs attributsParam cl