Ruby On Rails,gem邮件,将变量传递给html_part

时间:2013-06-24 16:05:27

标签: ruby-on-rails

我正在使用gem邮件从我的ruby应用程序发送电子邮件。

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

所以,我想在电子邮件中显示变量文件名的内容,但它不起作用,我不知道如何使其工作。 提前致谢

2 个答案:

答案 0 :(得分:3)

我有一些类似的问题。这是我解决它的设置:

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    'from@email.com'
    to      'to@email.com'
    subject 'My Subject Line'
    body     template
  end
  mail.deliver!
end

好像.result(binding)为我修好了。

在文件app/views/user_mailer/feedback_notice.text.erb中,我能够访问变量@sender@message

答案 1 :(得分:0)

这可能会对你有所帮助:

File.read(“/ home / kik / Desktop / lal / app / views / user_mailer / analysis_process_email.html.erb”)。gsub(“&lt;%= filenames%&gt;”,“cat”)。< / p>

感谢。