2013-06-24 59 views
0

我使用gem mail從我的ruby應用程序發送電子郵件。Ruby On Rails,gem mail,將變量傳遞給html_part

def send_results(user_id,filenames) 


    @user=User.find(user_id)  

    mail=Mail.new do 
     from "lalal.de" 
     html_part do 
     body File.read("/home/kik/Desktop/lal/app/views/user_mailer/analysis_process_email.html.erb") 
     body 
     end 
    end 

「/home/kik/Desktop/lal/app/views/user_mailer/analysis_process_email.html.erb」是一個HTML模板,在這裏我需要通過變量名。

它看起來是這樣的:

<!DOCTYPE html> 
<html> 

    <body> 
     <div id="wrapper_mail"> 
      <div id="wrapper_mail_top"> 
       <h4>Welcome </h4> 
       <br /> 
       <p> 

       <br /> 

       <br /> 
       Your files are: <%= filenames %><br /> 
       <br /> 
        m 
       </p> 
      </div><!-- end wrapper_top --> 
lalala 

所以,我要顯示在電子郵件中的變量名的內容,但它不工作,我不知道如何使它工作。 在此先感謝

+0

「不工作」怎麼樣?不應該發生什麼?什麼是'文件名'? –

+0

文件名是一個傳遞給send_results方法的變量。變量的內容可以是「group1」或「cat」。沒關係。例如:filenames =「cat」,所以用戶將收到一封電子郵件「Your files are:cat」 – Tonja

回答

2

我有一些類似的問題。這裏是我的設置是解決它:

def feedback_notice(message) 
    @sender = message.sender_id 
    @message = message.content 
    template = ERB.new(File.read('app/views/user_mailer/feedback_notice.text.erb')).result(binding) 

    mail = Mail.new do 
    from '[email protected]' 
    to  '[email protected]' 
    subject 'My Subject Line' 
    body  template 
    end 
    mail.deliver! 
end 

好像.result(binding)固定對我來說。

在文件app/views/user_mailer/feedback_notice.text.erb我能夠訪問的變量@sender@message

+0

「binding」來自哪裏? – kittyminky

+1

@kittyminky'binding'是內核的一部分,並給出了要評估模板的上下文,所以我們可以用它的值替換正確的變量。查看[綁定文檔](http://ruby-doc.org/core-2.1.4/Binding.html)瞭解更多信息。 – Hunter

0

可能,這將幫助你:

File.read( 「/家/ KIK /桌面/ LAL /應用/視圖/ user_mailer文件/ analysis_process_email.html.erb」)GSUB(」 <%= filenames%>「,」cat「)。

謝謝。

相關問題