无法访问Ruby数组和哈希值

时间:2014-01-17 21:43:01

标签: ruby-on-rails ruby ruby-on-rails-4

我正在拨打api电话并收到以下回复(很长时间,因此我展示了重要部分):

... "fields":{"count"_1:["0"],"count_2":["5"]} ...

当我这样做时:

call["fields"]["count_1"]

返回

["0"]

我需要它给我一个整数。我试过了:

call["fields"]["count_1"][0]

我也尝试过:

call["fields"]["count_1"][0].to_i

我在Rails中运行它,它给了我错误:

undefined method `[]' for nil:NilClass

但它不起作用。

3 个答案:

答案 0 :(得分:2)

使用String#to_i

尝试以下操作
call["fields"]["count_1"][0].to_i # => 0

答案 1 :(得分:2)

一些提示:

  1. 尝试在JSON.parse(...)中包装API响应。也就是说,如果您没有通过已经执行此操作的gem进行调用。这可能是require 'json'

  2. 尝试call['fields']['count_1'].first.to_i

  3. 进行一些调试:检查call.classcall['fields'].classcall['fields']['count_1'].class的值。最后一个肯定是数组

  4. 添加if子句以检查call['fields'][['count_1'].is_empty?

  5. 寻找错别字:)

答案 2 :(得分:0)

由于某种原因,API调用使零为零而不是零。谢谢你的帮助。