"email_tracking_pixels#m-6ren">
gpt4 book ai didi

ruby-on-rails - Rails-如何从 Controller 发送图像

转载 作者:行者123 更新时间:2023-12-03 13:07:20 25 4
gpt4 key购买 nike

在我的Rails应用中,我需要传回图像。

我的 route 有一个1x1.gif跟踪像素,如下所示:

 match "/_ctrack.gif" => "email_tracking_pixels#my_method"

在 Controller 中:
def my_method
send_data open('https://www.xxxxxx.com/images/1x1_transparent.gif') {|f| f.read }, :filename => '1x1_transparent.gif', :type => 'image/gif'
end

问题是由于某种原因有时会超时。出现以下错误:
2011-03-07T20:08:36-08:00 heroku[router]: Error H12 (Request timeout) -> GET www.xxxxxxx.com/images/1x1_transparent.gif dyno=web.1 queue=0 wait=0ms service=0ms bytes=0
2011-03-07T20:08:36-08:00 app[web.1]:
2011-03-07T20:08:36-08:00 app[web.1]: OpenURI::HTTPError (503 Service Unavailable):
2011-03-07T20:08:36-08:00 app[web.1]: app/controllers/email_tracking_pixels_controller.rb:19:in `my_method'
2011-03-07T20:08:36-08:00 app[web.1]: lib/rack/www.rb:7:in `call'

关于如何传递此存储在本地的图像的任何想法,而不必使用open并通过Web调用回自己的服务器?

谢谢

最佳答案

是否存在无法将文件保存到public/_ctrack.gif,删除路由并让底层Web服务器提供图像的原因?

如果需要从磁盘处理镜像,只需在本地文件名上使用 open :

send_data open("#{Rails.root}/path/to/file.gif", "rb") { |f| f.read } .......
rb将文件设置为 openbinary模式。

关于ruby-on-rails - Rails-如何从 Controller 发送图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5228238/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com