You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何从包含哈希的数组中获取next_pay等指定键的对应值

问题原因

你提供的代码无法生效的核心原因是Ruby哈希的符号键与字符串键不通用:如果Luckyfit.request接口返回的data字段使用字符串"data"作为键,你用符号:data无法匹配到对应值,会返回nil。

解决方法

场景1:直接提取现有数组中已有的next_pay值

如果你不需要调用接口更新数据,只是想拿示例数组中已存在的next_pay字段值,直接用以下代码即可:

# 提取数组所有元素的next_pay值,返回结果集合
next_pay_list = @next_pay_data.map { |ticket| ticket['next_pay'] }

# 提取第一个元素的next_pay值,直接得到"2021-10-05"
first_next_pay = @next_pay_data[0]['next_pay']

场景2:调用接口更新next_pay字段后取值

如果你需要通过接口获取最新的next_pay值写入原数组,修改代码兼容两种键格式即可:

@next_pay_data.each do |client_ticket|
  response = Luckyfit.request('GET', "/client_tickets/payed_finished/#{client_ticket['id']}")
  # 同时适配符号键、字符串键两种返回格式
  client_ticket['next_pay'] = response[:data] || response['data']
end

# 更新完成后提取所有next_pay值
updated_next_pay_list = @next_pay_data.map { |ticket| ticket['next_pay'] }

内容的提问来源于stack exchange,提问作者Nikita Smetanin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 16:12:03