gpt4 book ai didi

ruby-on-rails - 为什么我会收到此 TypeError - "can' t convert Symbol into Integer”?

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

我有一个哈希数组。每个条目看起来像这样:

- !map:Hashie::Mash 
name: Connor H Peters
id: "506253404"

我正在尝试创建第二个数组,其中仅包含 id 值。

["506253404"]

我是这样做的

second_array = first_array.map { |hash| hash[:id] }

但是我得到了这个错误

TypeError in PagesController#home
can't convert Symbol into Integer

如果我尝试

second_array = first_array.map { |hash| hash["id"] }

我明白了

TypeError in PagesController#home
can't convert String into Integer

我做错了什么?感谢阅读。

最佳答案

您使用的是 Hashie,它与 ruby​​ core 中的 Hash 不同。看着 Hashie github repo ,似乎你可以访问散列键作为方法:

first_array.map { |hash| hash.id }

试一试,看看是否有效——确保它不会返回 object_id。因此,您可能需要通过执行 first_array.map { |hash| 来仔细检查hash.name } 看看你是否真的在访问正确的数据。

然后,如果它是正确的,您可以使用 proc 来获取 id(但要更简洁):

first_array.map(&:id)

关于ruby-on-rails - 为什么我会收到此 TypeError - "can' t convert Symbol into Integer”?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4495294/

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