-2

我正在使用 mailgun 发送电子邮件。它有用于添加“取消订阅我”功能的 api。我在我的 Rails 应用程序中使用它。

使用此命令,我得到所有未订阅用户的列表,即 mailgun 取消订阅表中的条目。

 RestClient.get "https://api:key-3ax6xnjp29jd6fds4gc373sgvjxteol0"  "@api.mailgun.net/v2/samples.mailgun.org/unsubscribes"

我将其输出存储在@unsubscriber 中。所以我的控制器有:

  @unsubscribers = RestClient.get "https://api:key-3ax6xnjp29jd6fds4gc373sgvjxteol0"  "@api.mailgun.net/v2/samples.mailgun.org/unsubscribes"

当我在视图中显示输出时, <%= @unsubscribers %> 我得到字符串:

{
  "total_count": 1,
  "items": [{
    "created_at": "Sun, 11 Aug 2013 08:07:22 GMT",
    "tag": "*",
    "id": "sdfsdfw12423535456",
    "address": "xyz@abc.com"
  }]
}

因为我想从我的数据库中删除未订阅的电子邮件,所以我只想要@unsubscribers 中的电子邮件。但它包含整个字符串。

我不知道如何从上面的字符串中提取电子邮件,以便我可以在@unsubscribers 中有电子邮件列表,我可以从我的应用程序中删除它们。

有谁能够帮我?

4

2 回答 2

1

如果您尝试访问第一个订阅者的地址:

@unsubscriber['items'].first['address']

更安全的代码:

((@unsubscriber['items'] || []).first || {} )['address']

如果您尝试收集所有地址:

(@unsubscriber['items'] || []).map{|s| ['address']}
于 2013-08-11T17:10:27.117 回答
-1

@unsubscriber是一个哈希。items是一个哈希数组。您需要使用[0]. 然后你需要address价值

@unsubscriber["items"][0]["address"]
于 2013-08-11T17:07:57.060 回答