#ruby-on-rails #ruby #axlsx
#ruby-on-rails #ruby #axlsx
Вопрос:
Я просматриваю все свои shop
записи и отправляю им электронное письмо, если order
ошибка. Он отлично работает через 2 или 3 магазина, но после этого я получаю эту ошибку:
RuntimeError: Can't add attachments after
Почта was called.
Make sure to use attachments[]= before calling mail.
Это мой код для создания и отправки вложений:
def order_report
shops = Shop.where(subscribed: true, setup: true)
shops.each do |shop|
@sheet = OrderReport.new(shop)
@sheet.create_order_workbook
get_data_for_inside_email
time = Time.now
attachments["test_book.xlsx"] = File.read("test_book.xlsx")
excel_sheet_line_count = %x{wc -l "test_book.xlsx"}.split[0].to_i #this is just seeing how many lines the file is.. an empty sheet returns as 13
if excel_sheet_line_count > 13
mail(to: "some_email@gmail.com", subject: "FBA Shipping Report for #{time.strftime("%B %d")}")
end
end
end
Ответ №1:
Я добавлю это сюда, если кто-нибудь когда-нибудь столкнется с этим. Я никогда не мог заставить приведенный выше код работать, но я нашел это, и это работает как шарм:
mail(to: "todd@gmail.com",
subject: "FBA Shipping Report for #{time.strftime("%B %d")}").attachments["problem_orders_#{shop.id}.xlsx"] = File.read("problem_orders_#{shop.id}.xlsx")