使用.each遍历API响应

时间:2019-04-07 22:06:12

标签: ruby-on-rails json ruby paypal-rest-sdk

我希望能够循环解析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循环,但是无论如何都无法正常工作。

问题:如何在循环中在视图中产生响应?

1 个答案:

答案 0 :(得分:0)

PayPal和Stripe Payment Gateway的响应始终以数组的形式出现。 (目前,因为我在这两个网关上工作,所以不了解其他网关。)

您可以说他们必须维护一个可处理单条记录或多条记录的通用结构,这就是为什么在每个支付网关的大多数情况下,它都以数组形式返回的原因。

所以您必须这样做。

 <%= @payout_batch.items[0].batch_header %>