使用 ruby​​ 迭代 yaml 数组

2024-02-26

我申请了YAML.load_file到我的示例文件:

---
languages:
  - name: "English"
    iso_639: "en"
    native_name: "English"
    region:
      - ''
      - UK
      - US
  - name: "Klingon"
    iso_639: "tlh"
    native_name: "tlhIngan Hol"
    region:
      - notearth

我想迭代这些语言和区域数组。这不起作用:

records.each do |record|
  record.region.each do |region|
    self.create!
  end
end

record.region给我一个未知的区域方法错误。我如何迭代语言及其区域?或者,如何访问区域数组?


您的代码中有两个错误:

  1. 加载 YAML 文件后得到的对象不是数组,而是哈希值,假设该文件名为foo.yml:

    YAML.load_file('foo.yml')
    # => {"languages"=>[{"name"=>"English", "iso_639"=>"en", ...
    

    因此,您必须像下面这样修改代码才能使其工作:

    records['languages'].each do |record|
      # ...
    
  2. region不是哈希的方法record,它是一个键,您必须使用以下方式访问相关值record['region'].

您必须使用的正确代码是:

records['languages'].each do |record|
  record['region'].each do |region|
    # My guess is you are going to use `region` inside this block
    self.create!
  end
end
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 ruby​​ 迭代 yaml 数组 的相关文章

  • 为什么每个方法需要将其循环的值分配给变量?

    在 Rails 上工作 发现我对 Rails 的理解缺乏知识each method 不知道为什么each方法需要变量 message h2 h2 不确定为什么每个方法都需要变量 message 事实并非如此require它 你完全可以忽略它
  • 在Ruby中从csv文件中获取第二行[重复]

    这个问题在这里已经有答案了 actual row File open file name 0 r first row data CSV foreach actual row do row first row data lt lt row 1
  • Ruby:基于控制台的菜单

    我有一个名称和 URL 数组 并希望以向上 向下滚动菜单的形式向用户呈现名称列表 基本上是什么dialog允许在外壳内 我调查过ncurses ruby rdialog and HighLine但它们似乎要么作为一个项目被放弃 要么甚至从它
  • proc函数相对于方法有什么优点

    我正在解决一些问题欧拉计划 http projecteuler net 我提到我总是将短方法包装在 proc 函数中 我问自己 Why 答案是 我不知道 也许是因为它短 那么proc函数相对于普通方法除了短之外还有什么优点呢 Proc is
  • 将一维数组转换为二维数组并加入 PHP [重复]

    这个问题在这里已经有答案了 我有这个一维数组 array1 Array coupon code gt GTY777R coupon description gt Credito 5 USD array2 二维数组 Array 0 gt Ar
  • 使用brew时出现“错误的解释器”错误

    当我尝试运行任何 brew 命令时 出现此错误 Holger Sindbaeks MacBook Air holgersindbaek brew help bash usr local bin brew usr bin ruby bad i
  • Javascript - 使数组索引 toLowerCase() 不起作用

    我试图将所有数组索引设置为小写字符串 但它不起作用 我在这里查看了其他答案并尝试了他们的解决方案 例如使用toString 添加之前toLowerCase但它不起作用 这很奇怪 我创建了一个问题的jsfiddlehere https jsf
  • 载波无法删除图像

    我现在使用 Carrierwave 上传图像 一切都很好 除了一个 当我添加用于删除上传图像的复选框时 我收到错误 无法批量分配受保护的属性 remove image Form Model class Manufacturer lt Act
  • 解码Json数据数组并插入到mysql

    这个问题可能已经在这里问过 但我尝试搜索找不到它 我有如下 Json 数据 CityInfo CityCode 5599 Name DRUSKININKAI CityCode 2003 Name KAUNAS CityCode 2573 N
  • 正则表达式:如果字符串包含空格则不匹配

    仅当字符串不包含空格时 我似乎无法找出匹配字符串的正则表达式模式 例如 this has whitespace match some pattern 应该返回nil but nowhitespace match some pattern 应
  • 为什么 char 数组需要 strcpy 而 char star 不需要 - 在 C 中使用结构

    我对这段代码有一个误解 typedef struct EXP int x char name char lastName 40 XMP main XMP a a name eaaa a lastName strcpy a lastName
  • for 循环内的 Promise 的 setTimeout

    我想做的是这样的 循环数据集合 对于每个数据元素调用 API 等待 Promise 失败或解析 暂停 30 秒 然后对下一个数据元素再次执行此操作 直到没有任何内容可以迭代集合 最后显示 完成 消息 到目前为止 这是我编写的代码 在其他问题
  • 为关联数组选择哪种映射类型?学说ODM

    我有一个关于 顺便说一句 真的很棒 Doctrine ODM 的简单问题 假设您有一个类似以下的文档 Document class Test Id public id WHICHTYPE public field array 现在我想存储一
  • 如何显示多维数组第二层的 json 值?

    解决此代码时遇到问题 这些是数组 Array 0 gt stdClass Object id gt 1 name gt delux price gt 213 description gt tv gt 0 breakfast gt 0 par
  • 未签出...捆绑安装无法修复帮助!

    https github com intridea omniauth git at master is not checked out Please run bundle install Bundler GitError 那我该怎么办 捆绑
  • 默认更新嵌套属性

    我尝试更新 iProduction 这是生产中的嵌套表单 但此行出现参数错误 参数数量错误 0 代表 1 生产 update iproducts attributes cow id cow 我的创作动作制作 def create produ
  • 需要有关使用 PHP 在 mysql 数据库中插入逗号分隔数据的帮助

    数据库表中已有的演示数据 INSERT INTO csvtbl ID SKU Product Name Model Make Year From Year To VALUES 1 C2AZ 3B584 AR Power Steering P
  • 是否保证 sizeof(T[N]) == N * sizeof(T) ?

    我一直假设 N 个元素类型的数组的大小T 由返回sizeof保证正好是N次sizeof T The 对这个问题的评论 https stackoverflow com questions 46457449 is it always the c
  • Ruby 中的关键字在哪里定义?

    我正在查看 Ruby 文档 想知道是否一切都是对象 那么 关键字 也是对象 对吗 如果是这样 它们在 ruby 中是在哪里定义的 下面的页面完全让我困惑 因为它显示了包含所有关键字的对象 但这不是所有类使用的官方对象 这是否以某种方式来自不
  • ruby 1.9.1 的 gem install mongrel 失败

    昨天我开始了 Rails 开发 我安装了 ruby 1 9 1 rubygems 和 Rails 跑步gem install mongrel工作得很好 表面上也安装了杂种 我有点困惑 因为 script server 默认启动 webric

随机推荐

  • 协变在颤振中的作用

    我正在浏览 dart 文档 在那里我遇到了这段代码和这个术语covariant 我浏览了一些文档 但我不明白它是什么function那里 详细解释的答案总是值得赞赏的 class Animal void chase Animal x cla
  • 在 Firebase 中保存数组

    我使用 Firebase 3 0 作为后端 我需要保存我的每一个user uid在一个单独的子对象中 它需要是一个 NSArray 然后使用 for 循环检索该数组 这就是我保存数据的方式 我为 FIRController 创建了一个单独的
  • 在 Python 中验证字典

    我正在寻找工具或示例来 如何在 python 中验证字典 例如 我有字典 test foo bar nested foo1 bar1 foo2 bar2 现在我必须验证它 可以说 键值foo必须是布尔值False或非空字符串 接下来 如果关
  • 如何在 Visual Studio 2012 for Windows 8 上编译和执行 C 程序?

    我一直在寻找适用于 Windows 8 的 C 编译器 然后发现我可以在 Visual Studio 上编译 C 程序 微软提供了一个演练 http msdn microsoft com en us library vstudio bb38
  • 如何在 podspec 中添加捆绑目标

    我想做一个 podspec这个静态库 https github com thestk stk tree master iOS 在图书馆的 Xcode 项目中 我有一个 a图书馆的目标 以及 bundle目标为bundle https dev
  • flutter 中的多选项卡/页面视图

    如何在 flutter 中创建多页面视图 其中页面对应于底部导航栏中的选项卡 以便与页面对应的小部件仅按需构建一次 例如 考虑一个简单的 facebook 应用程序类型的 UI 带有两个选项卡 提要和具有以下行为的通知 提要和通知都是通过网
  • 当弹出窗口打开时,单击 Windows 标题栏的最小化、最大化和关闭按钮不起作用

    当我的弹出窗口打开时 第一次单击最小化或最大化或关闭按钮不起作用 第一次单击这些标题栏按钮将关闭弹出菜单并转移焦点 然后第二次单击窗口的最小化 最大化 关闭 有什么方法可以在第一次单击时激活这些标题栏按钮吗 主窗口 xaml
  • 切换目标框架后 System.Data.SQLite.DLL 不再加载

    我不得不从 net 4 5 切换到 net 4 0 因为我的一些客户仍然使用 WinXP 现在 切换后 这是我收到的错误 Could not load file or assembly System Data SQLite Version
  • C# 结合 GeckoFX + Tor.NET 库

    我正在尝试结合 GeckoFx 库和 Tor NET 库 在我的代码中 我做好了使用 tor 网络的所有准备 ClientCreateParams createParameters new ClientCreateParams create
  • Netbeans 8.2 无法验证 Git 凭据?

    我正在制作一个 Java 项目 该项目已在 github 上进行了多次提交 我最近将 Kubuntu 上的操作系统版本从 17 10 gt 18 04 更改 并安装了带有 Java 版本 1 8 0 171 的 Netbeans 8 2 以
  • Flutter插件:InAppPurchasePlugin.java使用未经检查或不安全的操作

    当我尝试在应用程序 pubspec yaml 文件中添加 in app purchase 插件时 会发生以下错误 就在添加插件之后 与任何特定代码无关 Note Users tanzimfahim flutter pub cache hos
  • GetAltTabInfo 用法?

    我无法使用 GetAltTabInfo 可能是一个愚蠢的错误 但这有什么问题呢 HWND taskSwitcher FindWindow L TaskSwitcherWnd L Task Switching ALTTABINFO altTa
  • 如何在android中的字符串中的每个“\n”之后添加行间距?

    正如问题所明确指出的那样 我想在每个之后添加一个小行距 n在 Android 资源文件的字符串中定义 假设我们在 xml 中定义了一个字符串 如下所示
  • 重置表单,无需 JavaScript? (输入类型=重置不起作用)

    好吧 我想标题已经说明了一切 我正在寻找一种重置表单中所有字段的方法 我尝试过以下一些方法
  • 跨多个服务器扩展 Socket.IO

    我一直在寻找有关为 Node js Socket IO 安装设置多服务器集群的帮助 这就是我正在尝试做的 在 F5 负载均衡器中有 1 个 VIP 指向n运行 Express 和 Socket IO 的 Node 服务器数量 让客户端通过以
  • 我应该如何 scipy.optimize 具有边界的多元且不可微的函数?

    我遇到了以下优化问题 目标函数是一个多变量且不可微的函数 它将标量列表作为参数并返回标量 它是不可微的 因为函数内的计算基于 pandas 和一系列滚动 std 等操作 伪代码如下 def target function x list gt
  • 如何强制 Xcode 使用自定义编译器?

    我想强制 Xcode 使用自定义编译器 从 src 构建的 clang llvm 以便我可以使用 clang 插件 我的Xcode版本是7 3 1 人们说使用自定义工具链是可能的 我没有对它们进行研究 因为更简单的解决方案对我来说效果很好
  • 如何更新 npm 模块,忽略 git 存储库

    我分叉了一个 npm 模块 现在它是一个 git 存储库 所以我的 package json dependencies some module git https github com my name some module git 分叉的
  • Git 存储库内部格式解释

    有没有关于 Git 如何在其存储库中存储文件的文档 我尝试在互联网上搜索 但没有可用的结果 也许我使用了不正确的查询 或者也许这是一个伟大的秘密 Git 存储库内部格式 让我解释一下 为什么我需要这些火箭科学信息 我正在使用 C 从存储库中
  • 使用 ruby​​ 迭代 yaml 数组

    我申请了YAML load file到我的示例文件 languages name English iso 639 en native name English region UK US name Klingon iso 639 tlh na