ruby-on-rails - 使用 .each 循环访问 API 响应
问题描述
我希望能够在循环中解析 API 响应。
我在控制器方法中有这个:
@payout_batch= PayPal::SDK::REST::Payout.get('xxxxxxx')
logger.info "Got Payout Batch Status[#{@payout_batch.batch_header.payout_batch_id}]"
rescue ResourceNotFound => err
logger.error "Payout Batch not Found"
end
我可以显示这样的结果:
<%= @payout_batch.batch_header.amount.value %>
但是如果可能的话,我希望能够在 .each 循环中循环所有内容。我尝试了几种方法,但似乎没有任何效果:
<% @payout_batch.batch_header.each do |x| %>
<%= (x["amount"]) %>
<% end %>
还有更多类似的方法。尝试使用以下方法定义响应:
json = JSON.parse(@payout_batch)
并使用 json 循环,但这似乎也不起作用。
问题:如何通过循环在视图中产生响应?
解决方案
PayPal 和 Stripe 支付网关的响应总是以数组的形式。(目前,不知道其他网关,因为我已经在这两个方面工作过。)
你可以说他们必须维护一个共同的结构来处理单个记录或多个记录,这就是为什么在每个支付网关的大多数情况下它以数组的形式返回。
所以你必须这样做。
<%= @payout_batch.items[0].batch_header %>
推荐阅读
- r - lm_robust 获取因子变量的参考水平
- php - 使用 htaccess 将某个相对路径的 root 所有请求传递到另一个目录
- python - 用 pygame 创建一个表面,但是当我运行程序时,什么也没显示
- c# - C# WFA - 增加值直到限制然后减少循环
- json - Yii2 ActiveForm for yii\httpclient\CurlTransport
- android - 如何在Android上将项目排序到ArrayList
- c++ - 使用 String 对象时,如何将数组结构发送到函数中?
- javascript - 使用 setTimeout 函数,该函数从 redux 分派一个动作并通过 fetch 调用解决一个承诺链
- javascript - 使用 Intersection Observer 切换活动类
- python - 从数据框中更新嵌套字典值