如何使用ruby on rails上的动作邮件程序在电子邮件中显示图像

时间:2016-03-26 06:13:07

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

我正在制作一个向用户发送邮件的应用程序,因为我在我的应用程序中使用了动作邮件程序。我想用邮件展示一张图片,但我无法做到这一点。任何人都可以帮忙解决这个问题。 我正在使用纸夹宝石在我的应用程序中存储图像。 存储图像名称的数据库中的字段
prescription_file_name => " foo_bar_thumbnail_image7.jpg" 但该图像的实际完整URL就像

"/system/service_requests/prescriptions/000/000/237/medium/foo_bar_thumbnail_image7.jpg?1455861395".

提前致谢

2 个答案:

答案 0 :(得分:1)

您需要在电子邮件中提供完整的网址才能显示图片

"/system/service_requests/prescriptions/000/000/237/medium/foo_bar_thumbnail_image7.jpg?1455861395".
This won't work. Its a path only known to your server.

所以你需要像这样(完整网址):

"http://www.example.com/system/service_requests/prescriptions/000/000/237/medium/foo_bar_thumbnail_image7.jpg?1455861395".

Here http://www.example.com is your domain.

如果图片存储在应用的公共目录中,请使用此功能:

Rails.root.join(@object.image_name.url)

如果图像存储在S3等其他位置,请使用此功能:

@object.image_name.url

PS:此图片应公开显示。

答案 1 :(得分:0)

您应该在mailer.rb

中尝试此操作

attachments ['image.jpg'] = File.read(@ photo.prescription_file.path(:original))

@photo包含图像的详细信息

比电子邮件视图文件

image_tag attachments ['image.jpg']。url

添加这个..它对我来说很有意义..