У меня есть массив с несколькими идентификаторами, как показано ниже. Я хочу l oop, чтобы получить индивидуальные значения. Я думал о чем-то вроде этого.
def letter(billing_ids)
@billings = Billing.find(billings_ids.split(","))
@billings.each do |bill|
puts "#{bill}"
end
end
но я получаю сообщение об ошибке ActiveRecord :: RecordNotFound: Не удалось найти все Биллинги с 'id': ([66, 68]) (найдено 1 результатов, но искала 2)
ActiveRecord :: RecordNotFound: Не удалось найти счет-фактуру с 'id' = [47]
Я получаю приведенный ниже массив из этого запроса -
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
end
puts (billing_ids)
end
[66, 68]
[47]
Пожалуйста, помогите мне разобраться, как мне это сделать.
обновление
def letter(billing_ids)
@billings = Billing.where(id: billings_ids.split(","))
@billings.each do |bill|
puts "#{bill}"
end
end
Обновление 2:
def letter(billing_ids)
puts "#{billing_ids}"
end
вывод на терминал
[66, 68]
[47]
Обновление 3
, используемое отладчиком, чтобы выяснить, что идет не так, и это то, что я могу найти, когда делаю
@billings = Billing.where(id: billing_ids)
@billings.each do |bill|
byebug
puts bill.id
end
Исключение MethodError: неопределенный метод `each 'для" [66, 68] ": String