Rails:邮件中的 Attachments.inline[]

use*_*724 3 actionmailer ruby-on-rails-3

我希望在发送电子邮件时在电子邮件中显示公司徽标。我想到了动作邮件程序基础,并且有支持邮件中图像的附件内联功能。

我是这样实现的:

在 user_mailer.rb 中

def welcome_email(user)
@user = user
 @url  = "http://mealnut.com"
  attachments.inline['mealnut.png']

mail(:to => user.email, :subject => "Mealnut: New Order #{order.id}")
end
Run Code Online (Sandbox Code Playgroud)

在config/application.rb中:

config.action_mailer.default_url_options = { :host => "mealnut.com" }
Run Code Online (Sandbox Code Playgroud)

在welcome_email.html.web中

  <div class="logo">
          <%= image_tag attachments['mealnut.png'].url, :alt => 'Mealnut', :class => 'photo' %>
  </div>
Run Code Online (Sandbox Code Playgroud)

但它给出了错误:

undefined method `url' for nil:NilClass
Run Code Online (Sandbox Code Playgroud)

出了什么问题吗?

gue*_*efi 5

附件和内联附件的区别仅在于内联将通过 base64 插入它,但无论如何您都需要附加一个文件!

  attachments.inline['mealnut.png'] = File.read( Rails.root.join("app/some/path/","mealnut.png") )
Run Code Online (Sandbox Code Playgroud)

比你能够在视图中引用它

希望有帮助!