我正在制作一个向用户发送邮件的应用程序,因为我在我的应用程序中使用了动作邮件程序。我想用邮件展示一张图片,但我无法做到这一点。任何人都可以帮忙解决这个问题。
我正在使用纸夹宝石在我的应用程序中存储图像。
存储图像名称的数据库中的字段
prescription_file_name => " foo_bar_thumbnail_image7.jpg"
但该图像的实际完整URL就像
"/system/service_requests/prescriptions/000/000/237/medium/foo_bar_thumbnail_image7.jpg?1455861395".
提前致谢
答案 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
添加这个..它对我来说很有意义..