У меня есть почтовик в каталоге:
/my_app/app/mailers
Мой код в этом почтовом ящике:
class MyMailer < ApplicationMailer
default from: 'todd@myemail.com'
include Reports::OrderReport
def welcome_email
email = params[:email]
mail(to: email, subject: 'Welcome to My Awesome Site')
sheet = OrderReport.new
sheet.create_workbook
end
end
К электронным письмам, отправляемым от этой почтовой программы, мне нужно прикрепить отчет Excel, который генерируется из класса, определенного в /my_app/app/reports
, и код в этом классе выглядит следующим образом:
class OrderReport
require 'axlsx'
attr_reader :shop, :order_workbook
def initialize
workbook_instance = Axlsx::Package.new
@order_workbook = workbook_instance.workbook
end
def create_workbook
order_workbook.add_worksheet(:name => "Basic Worksheet") do |sheet|
sheet.add_row ["First Column", "Second", "Third"]
sheet.add_row [1, 2, 3]
sheet.add_row [' preserving whitespace']
end
order_workbook.serialize("test_book.xlsx")
end
end
Но когда я пытаюсь запустить свою почтовую программу с этим:
MyMailer.with(email: "this_email@gmail.com").welcome_email.deliver_now
Я получаю следующую ошибку:
NameError: uninitialized constant MyMailer::Reports
from app/mailers/my_mailer.rb:3:in `<class:MyMailer>'
from app/mailers/my_mailer.rb:1:in `<top (required)>'
from (irb):1
Где я ошибся?