Rails 4 Action Mailer - 附加非本地内嵌图像(带URL)

时间:2014-12-16 21:01:31

标签: ruby-on-rails-4 paperclip actionmailer

我知道为了使用Action Mailer附加内联图像,您在控制器操作中包含以下行:

attachments.inline['image.jpg'] = File.read('path/to/image.jpg')

我已经得到了适用于本地存储的图像,但我现在正在尝试附加一个Paperclip附件的图像并使用Amazon S3存储。如何附加未与站点存储在同一域中的内嵌图像?我试过了:

attachments.inline['image.jpg'] = @resource.image.url(:full)

我知道“@ resource.image.url(:full)”确实成功指向我要附加的图像,但它在电子邮件中显示为损坏的图像。如果我尝试:

attachments.inline['image.jpg'] = File.read(@resource.image.url(:full))
然后它完全失败了。有谁知道怎么做?

1 个答案:

答案 0 :(得分:3)

您正在调用文件。当它期望本地文件路径时,请读取URL。你试过了吗?

attachments.inline['image.jpg'] = open("https://s3-us-(region).amazonaws.com/(bucketname)/#{@image.current_path}").read

示例:

attachments.inline['image.jpg'] = open("https://s3-us-west-2.amazonaws.com/mycucket/#{@image.current_path}").read

它适用于载波作为图像上传器,它也可以与回形针一起使用。