0

我正在使用没有 Rails 的 Ruby 1.9.3,并且正在尝试准备电子邮件地址以发送到电子邮件服务提供商 API。我必须将发送分成几批。我在这里以 3 为例。首先,我得到了我们将从数据库查询中发送的推荐。

referrals = @db.query("SELECT * FROM referrals")

我正在接受推荐并使用 each_slice 创建批次。但是,当我运行以下代码时,prepared_batch 的日志条目没有内容,而 refer['client_email'] 的日志条目包含正确的值。

referrals.each_slice(3) do |batch|
  prepared_batch = batch.map do |referral|
    { 
      :EMAIL => referral['client_email'], 
      :EMAIL_TYPE => 'html' 
    }
    @log.info("referral in prepared_batch: #{referral['client_email']}")
    @log.info("prepared_batch : #{prepared_batch}")
  end
end

我应该在这里更新什么以便prepared_batch 具有正确的三个条目?

我感谢所有建议。谢谢。

4

2 回答 2

1

您实际上是将@log.info调用的结果放入准备好的批处理中。试试这个:

referrals.each_slice(3) do |batch|
  prepared_batch = batch.map do |referral|
    @log.info("referral in prepared_batch: #{referral['client_email']}")
    { 
      :EMAIL => referral['client_email'], 
      :EMAIL_TYPE => 'html' 
    }
  end
  @log.info("prepared_batch : #{prepared_batch}")
end
于 2013-11-11T06:29:01.420 回答
1

prepared_batch完成后分配map do .. end。我相信这就是为什么您没有区块中获得价值的原因。

于 2013-11-11T06:29:07.760 回答