ben*_*ben 3 ruby ruby-on-rails
我有一系列哈希.每个条目如下所示:
- !map:Hashie::Mash
name: Connor H Peters
id: "506253404"
Run Code Online (Sandbox Code Playgroud)
我正在尝试创建第二个数组,其中只包含id值.
["506253404"]
Run Code Online (Sandbox Code Playgroud)
这就是我的做法
second_array = first_array.map { |hash| hash[:id] }
Run Code Online (Sandbox Code Playgroud)
但是我收到了这个错误
TypeError in PagesController#home
can't convert Symbol into Integer
Run Code Online (Sandbox Code Playgroud)
如果我试试
second_array = first_array.map { |hash| hash["id"] }
Run Code Online (Sandbox Code Playgroud)
我明白了
TypeError in PagesController#home
can't convert String into Integer
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?谢谢阅读.
你正在使用Hashie,它与ruby core中的Hash不同.看看Hashie github repo,似乎你可以访问哈希键作为方法:
first_array.map { |hash| hash.id }
Run Code Online (Sandbox Code Playgroud)
试试这个,看看是否有效 - 确保它不会返回object_id.因此,您可能需要仔细检查,first_array.map { |hash| hash.name }
看看您是否真的在访问正确的数据.
然后,如果它是正确的,你可以使用proc来获取id(但更简洁一点):
first_array.map(&:id)
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
2948 次 |
最近记录: |