我知道为了使用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))
然后它完全失败了。有谁知道怎么做?
答案 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
它适用于载波作为图像上传器,它也可以与回形针一起使用。