我在没有Rails的情况下使用Ruby 1.9.3并且正在尝试准备电子邮件地址以便发送到电子邮件服务提供商API。我必须将发送分批。我在这里以3为例。首先,我获得了将从数据库查询发送的引用。
referrals = @db.query("SELECT * FROM referrals")
我正在接受推荐并使用each_slice创建批次。但是,当我运行以下代码时,prepared_batch的日志条目没有内容,而referral ['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
我应该在这里更新什么,以便prepare_batch有正确的三个条目?
我感谢所有建议。谢谢。
答案 0 :(得分: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
答案 1 :(得分:1)
prepared_batch
之后 map do .. end
仅分配。我相信这就是为什么你没有在块中获得值的原因。