我在Heroku上托管了一个Rails 4应用程序,该应用程序为S3存储桶提供资源。我正在尝试定制我的邮件程序(在这种情况下,设计Devise邮件程序),以便我可以将内嵌图像嵌入到我的电子邮件中。Rails 4 Mailer,Amazon S3和内嵌图像
每Rails的文档,邮件程序应包含的代码如下所示:
def confirmation_instructions(record, token, opts={})
# Prepare image for embedding
attachments.inline['logo'] = File.read("#{Rails.root}/app/assets/images/logo.jpg")
# Allow Devise to do its thing
super
end
和视图应包含以下内容:
<%= image_tag attachments['logo'].url, :style => "my styling here" %>
在Heroku上,这个失败,以下日志:
ActionView :: Template :: Error(未定义的方法'url'为零:NilClass):
“我在这里的造型”%>
换句话说,它看起来像attachments.inline [“标志”]是返回nil,然后在视图呼吁的.url上为零。
我已经尝试了很多修复程序,在这一点上我非常恼火。我知道这一定是我忽略的一些简单的东西,我希望有人能指出我出错的地方。
在此先感谢。
我不认为需要Rails根目录,请尝试'File.read('app/assets/images/logo.png');超级“,并确保你的类继承自Devise :: Mailer – argentum47