何时使用 Hashie::Mash?

2024-03-19

正在从这个 JSON API 获取一些产品,我想知道——我真的需要吗Hashie::Mash?

直播应用程序:http://runnable.com/U-QJCIFvY2RGWL9B/pretty-json-keys http://runnable.com/U-QJCIFvY2RGWL9B/pretty-json-keys

main_controller.rb:

response = prettify(JSON.parse(@json_text))
mashie = Hashie::Mash.new(response)

@products = []
mashie.products.each do |product|
  product.extend Hashie::Extensions::DeepFetch

  product.price = product.deep_fetch :sale_price

  @products << product
end
@products

我试过这个:

response = prettify(JSON.parse(@json_text)['products'])

@products = []
response.each do |product|
  product.extend Hashie::Extensions::DeepFetch

  product.price = product.deep_fetch :sale_price

  @products << product
end
@products

但这会返回:

Hashie::Extensions::DeepFetch::UndefinedPathError in MainController#index
Could not fetch path (sale_price) at sale_price

您可能想做这样的事情:

mashie.products.each do |product|
  product.extend Hashie::Extensions::DeepFetch

  product.price = product.deep_fetch(:sale_price) { 'Not Found' }
  # Returns 'Not Found' if it does not find the key sale_price. It can be anything, like nil, 0, 'Not Found'

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

何时使用 Hashie::Mash? 的相关文章

随机推荐

  • 在 Windows XP、SP3 上使用 RawCap 嗅探本地主机

    我正在尝试使用 RawCap 来嗅探 Windows 本地主机 然而 与它所宣称的能力相反 它并没有发挥作用 我按如下方式启动它 rawcap 127 0 0 1 回声 pcap 然后我运行我编写的一个 echo TCP 客户端 服务器测试
  • 如何以不同的配置启动 emacs

    我经常遇到以下流行的 emacs 版本 graphene https github com rdallasgray graphene prelude https github com bbatsov prelude emacs live h
  • 返回模拟方法的参数作为结果

    最简单的例子 我有以下方法 public String testMethod String arg 我想模拟这个方法以返回传递的参数作为结果 例如 testMethod aString returns aString testMethod
  • cURL 错误:SSL 对等证书或 SSH 远程密钥不正常 [关闭]

    这个问题不太可能对任何未来的访客有帮助 它只与一个较小的地理区域 一个特定的时间点或一个非常狭窄的情况相关 通常不适用于全世界的互联网受众 为了帮助使这个问题更广泛地适用 访问帮助中心 help reopen questions Using
  • 将 php 变量从一个文件传递到另一个文件?

    我在主文件 main php 中设置了一个变量 并且需要第二个文件 uploads php 来引用第一个文件中设置的变量 它现在返回未定义 第二个文件使用 load 加载到第一个文件中 下面的代码示例 Main php 内容 div div
  • 用于检查 MySQL TABLE LOCK 状态的 Php 脚本

    我使用 mysqldump 进行 MySQL 备份 mysqldump lock tables DB大约2GB 因此mysqldump需要很长时间 如果有人在备份期间尝试访问数据库 我会显示一条消息 数据库正在备份 请在10分钟后返回 我的
  • Android中View和ViewGroup的区别

    和有什么区别View and a ViewGroup在Android编程中 View View对象是 Android 中用户界面 UI 元素的基本构建块 View是一个简单的矩形框 它响应用户的操作 例子是EditText Button C
  • 关于 [base + index*scale + disp] 和 AT&T disp(base,index,scale) 的几个问题

    Intel 和 AT T 语法中内存寻址的一般形式如下 base index scale disp Intel including GAS intel syntax noprefix disp base index scale AT T 我
  • AngularJS 的面向对象方法

    Angular 似乎没有提供内置的解决方案来定义具有属性和方法的类实例 并且需要开发人员来构建它 您认为这样做的最佳做法是什么 如何将其与后端链接 我收集的一些技巧使用工厂服务和命名函数 资料来源 Tuto 1 https medium c
  • 使用 Spring boot 和 JWT 保护 REST Api

    我正在尝试使用以下方法来保护我的 REST 服务器JWT我已经实现了自己的 这意味着 JWT 中没有 spring 的东西可以自行处理 其他一切都是Spring当然 我有这门课 JWTToken implements Authenticat
  • Windows 应用程序认证工具包验证期间出现“检测到高操作系统版本验证”错误

    运行时出现以下测试失败Windows App Certification Kit 10 0 Platform version launch Error Found The high OS version validation detecte
  • 尝试使用空的捕获[重复]

    这个问题在这里已经有答案了 假设我有一个 try 语句和空 catch 是不好的做法吗 例如 假设我有两次单独的尝试 其中一次可能失败 但另一次成功 或者两者都成功 或者任何可能的组合 处理这样的代码是不好的做法吗 Example if m
  • 定义全局 android.widget var/val 时的“lateinit”或“by懒惰”

    定义全局时android widget变量 例如TextView 是否最好使用lateinit or by lazy 我最初想使用by lazy会被首选 因为它是不可变的 但我不完全确定 by lazy例子 class MainActivi
  • React-router - 如何在 React 中的页面之间传递数据?

    我正在开发一个项目 必须将数据从一个页面传递到另一个页面 例如 我有data在第一页上 let data id 1 name Ford color Red id 2 name Hyundai color Blue 这是第一个组件页面 我在其
  • javascript:如何调试键盘事件

    想象一个使用自定义键盘事件处理程序的 Web 应用程序 该处理程序可能会执行事件冒泡或事件捕获 有没有办法 例如 Firefox Firebug 插件 调试每个击键 键盘事件 就像是 显示事件类型和所有属性 跟踪哪个 javascript
  • 在三个js中使用鼠标悬停更改网格的颜色

    我已经编写了一个 WebGL 脚本 该脚本使用 jsonloader 和 Three js 显示多个网格 现在我想添加 MouseOver 和 onClick 事件 第一个是当鼠标悬停在网格上时简单地更改网格的颜色 function ren
  • PHP/Smarty 来自数据库的嵌套数组

    好的 我正在尝试通过嵌套查询访问 php mysql 数据库 例如 我有 2 张桌子 1 人和 2 登记 我在注册中有一个推荐 ID 选项卡 因此 当用户登录时 他应该能够看到在其 ID 下完成的 4 级注册 表结构 登记 编号 注册ID
  • Seaborn FacetGrid 包括用于删除级别的空列/行[重复]

    这个问题在这里已经有答案了 我正在使用内置的 Seaborn 数据集钻石建立一个基于 切割 和 颜色 的 FacetGrid 然而 我首先删除颜色 D 和 E 以及剪切 Fair 希望得到 5x5 网格 我的代码是 diamonds sns
  • PHP 类型转换混乱

    我有以下代码 我一直认为 res 应该是 false 就像上面的表达式一样 PHP 会尝试将 val 类型转换为布尔类型 其中零将被转换为 false 和字符串 非空字符串为 true 但是如果我执行上面的代码输出将是 boolean tr
  • 何时使用 Hashie::Mash?

    正在从这个 JSON API 获取一些产品 我想知道 我真的需要吗Hashie Mash 直播应用程序 http runnable com U QJCIFvY2RGWL9B pretty json keys http runnable co