В обычном контроллере Rails вы не можете вызывать какой-либо метод render
более одного раза, и здесь вы делаете это для столько заказов, сколько у вас есть.
Вместо этого, я думаю, вы захотите либореорганизуйте свои данные так, чтобы все счета-фактуры были сгенерированы в одном шаблоне pdf, или вы сгенерируете отдельные файлы pdf вне цикла response_to / render, а затем объедините их в один файл PDF или zip-файл, содержащий их все.
Вот примерный план того, как это может выглядеть:
@awb_orders = Spree::Order.where('created_at >= ? AND created_at <= ?', DateTime.now-1.month, DateTime.now).where(:state => 'complete').order("created_at DESC")
respond_to do |format|
format.html
format.pdf do
cpdf = CombinePDF.new
@awb_orders.each do |order|
pdfdata = render_to_string(pdf: "order_#{order.id}"
cpdf << CombinePDF.parse(pdfdata)
end
send_data cpdf.to_pdf, filename: "combined.pdf", type: "application/pdf"
end
end