【发布时间】:2019-11-24 21:03:01
【问题描述】:
我试图从这个 Hashie 中检索每周预算总和,但没有成功。
#sample hashie
#client_budget_items
849:
- !ruby/hash:Hashie::Mash
id: 511144069
weekly_budget: 5
client_id: 55
850:
- !ruby/hash:Hashie::Mash
id: 511144064
weekly_budget: 30
client_id: 55
851:
- !ruby/hash:Hashie::Mash
id: 511144066
weekly_budget: 10
client_id: 65
852:
- !ruby/hash:Hashie::Mash
id: 511144070
client_id: 65
weekly_budget: 20
我试过了:
weekly_budgets = client_budget_items.map{|y| y[:weekly_budget]}.compact
获取数组中的所有值,然后将其相加,但我不断得到:
no implicit conversion of Symbol into Integer
如何遍历 Hashie::Mash?
【问题讨论】:
-
寻求调试帮助的问题(“为什么这段代码不起作用?”)必须包括所需的行为、特定的问题或错误以及在问题本身中重现它所需的最短代码。请参阅:How to create a Minimal, Reproducible Example。您的代码目前什么都不做。提供一些能实际证明问题的东西。
-
@theTinMan,关于我应该如何改进它的任何提示?当我尝试将结果映射到列表中时,我得到
no implicit conversion of Symbol into Integer,因为我输入了问题 -
提供包含所需
require语句的最小代码,将数据加载到字符串中(此处的文档对此很有用),然后展示您如何尝试处理它。数据基本上是YAML,因此文档解释了如何从字符串加载。另见stackoverflow.com/a/11726198/128421。尝试多次,如果仍然无法解决,请提出具体问题。 -
作为提示,
weekly_budget不是符号,您必须在每个哈希值中的嵌套数组中导航。为了好玩,还有schneems.com/2014/12/15/hashie-considered-harmful.html 和code.dblock.org/2017/02/24/… -
@theTinMan 哦,天哪,第二篇文章的标题让我笑得很厉害。在遗留系统上为此苦苦挣扎了大约两天。感谢您的链接
标签: ruby-on-rails ruby hash