2013-10-05 7 views
0

ActionMailer를 사용하여 전자 메일을 보내려고합니다.Rails ActionMailer 매개 변수가 문자열입니다.

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

내가지고있어 오류는 다음과 같습니다

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

이 뷰 코드는 다음과 같습니다

이 컨트롤러 코드

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

invoice_mailer.rb입니다 인보이스 _mailer의이 줄에서 :

도움을

undefined method `workorder' for "10":String 

감사 :

mail(:to => @invoice.workorder.contact.email, :subject => "nDeavor New Invoice") 

이 오류입니다!

답변

0

sendinvoice 메서드에는 @invoice = params[:invoice_id]이 있으며,이 숫자는 @invoice에 10을 할당 한 다음 InvoiceMailer.invoice_email으로 전달합니다.

아마도 원하는 것은 @invoice = Invoice.find(params[:invoice_id])입니다. 그러면 id가 10 인 Invoice 객체가 가져옵니다.

+0

답변 해 주셔서 감사합니다! – Reddirt