Как использовать «возвращаемое» значение внутреннего l oop во внешнем цикле - PullRequest
1 голос
/ 16 января 2020

Я хочу использовать значение внутреннего each l oop во внешнем l oop, чтобы передать его в качестве аргумента.

namespace :office do
  desc "send reminder emails"
  task send_reminder: :environment do
    Office.all.each do |office|
      office.issues.where("issues.amount > 0").each do |issue|
        issue.billings.where("billings.date < ?", Message.last.date).order(:date).last # I will get billing_ids here which I want to pass as arguments in the outer loop.
      end
      ReminderWorker.perform_async(billing_ids)
    end
  end
end

Как мне это сделать?

1 Ответ

1 голос
/ 16 января 2020

Попробуйте это:

    Office.all.each do |office|
      billing_ids=[] #initialize array
      office.issues.where("issues.amount > 0").each do |issue|
        billing_ids << issue.billings.where("billings.date < ?", Message.last.date).order(:date).last.id #add id to array
      end
      ReminderWorker.perform_async(billing_ids)
    end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...