2016-12-08 3 views
2

Я поставил креветку в моей рельсы приложение для генерации:Rails 5 Action Mailer - креветка PDF неверное число аргументов

format.pdf do 
      pdf = SalesByDayPdf.new(@daily_salesnp, @amount_total, @discount_total, @grand_total) 
      pdf.render_file "daily_sales.pdf" 
      send_data pdf.render, filename: 'daily_sales.pdf', type: 'application/pdf', disposition: 'inline' 

     end 

И это мой SalesByDayPdf

def initialize(daily_salesnp, grand_total, discount_total, amount_total) 
    super() 
    @daily_salesnp = daily_salesnp 
    @amount_total = amount_total 
    @discount_total = discount_total 
    @grand_total = grand_total 

    header 
    text_content 
    table_content 
    footer 
    end 

Это прекрасно работает.

Теперь я хочу отправить этот pdf-файл из почтовой программы. Я поставил его в моем DailySalesMailer как:

def send_daily_sale(daily_salesnp, grand_total, discount_total, amount_total) 
    @daily_salesnp = daily_salesnp 
    @amount_total = amount_total 
    @discount_total = discount_total 
    @grand_total = grand_total 

    attachments["daily_sales.pdf"] = SalesByDayPdf.new(daily_salesnp, grand_total, discount_total, amount_total) 
    mail(:to => "[email protected]", :subject => 'Sales by Day Report') 

end 

Поэтому в основном я скопировал генератор Pdf в почтовой программе и прошли те же аргументы, определенные в моем контроллере.

Но я получаю:

неверное число аргументов (данных 1, как ожидается 4)

Что я делаю неправильно?

+0

пожалуйста, вы можете добавить больше журналов? – Zero

+0

Я не вижу никакой ошибки, связанной с креветкой. Можете ли вы добавить метод метода send_daily_sale с аргументами? – Zero

+0

извините, что вы имеете в виду? Как мне это сделать? – Catmal

ответ

0

Решение изменить приложение к:

attachments["daily_sales.pdf"] = SalesByDayPdf.new(daily_salesnp, grand_total, discount_total, amount_total).render 
Смежные вопросы