2013-10-05 3 views
2

Я пытаюсь создать письмо с помощью ActionMailer. Электронное письмо-фактура отправляется.Rails ActionView Отсутствует шаблон во время электронной почты

Но, я получаю эту ошибку на экране после того, как электронная почта отправляется:

ActionView::MissingTemplate at /invoices/sendinvoice 
Missing template invoices/sendinvoice, application/sendinvoice 

Это в моем invoices_controller.rb

def sendinvoice 
    @invoice = Invoice.find(params[:invoice_id]) 
    InvoiceMailer.invoice_email(@invoice).deliver 
    end 

Это в почтовых программ/invoice_mailer.rb

class InvoiceMailer < ActionMailer::Base 
    default from: "[email protected]" 
    def invoice_email(invoice) 
    @invoice = invoice 
    mail(:to => @invoice.workorder.contact.email, :subject => "New Invoice from " + @invoice.tenant.name) 
    end 
end 

Это в представлениях/invoice_email.html.erb

<!DOCTYPE html> 
<html> 
<head> 
    <meta content="text/html; charset=UTF-8" http-equiv="Content-Type"/> 
</head> 
<body> 
<h2>Invoice</h2> 

</body> 
</html> 

Это кнопка в Накладные/show.html.erb

<%= link_to 'Send Invoice', invoices_sendinvoice_path(:invoice_id => @invoice), :class => 'btn btn-primary' %> 

Это в маршрутах:

get "invoices/sendinvoice" 

Спасибо за помощь!

ответ

1

Да, вы должны указать один вид при отправке письма. У вашего действия нет представления, и рельсы просят об этом. Представление должно быть в приложении/views/invoices/sendinvoice.html.erb

+0

ОК - спасибо, я пропустил это понимание. – Reddirt

Смежные вопросы