我正在构建一个Rails应用,可以在外部网站上进行转换跟踪。我想允许用户在其转化页(例如AdWords)中粘贴图片代码,并且每当请求该图片时,我的应用中都会转换一个转化。
respond_to do |format|
if @conversion.save
flash[:notice] = 'Conversion was successfully created.'
format.html { redirect_to(@conversion) }
format.xml { render :xml => @conversion, :status => :created, :location => @conversion }
format.js { render :json => @conversion, :status => :created }
format.gif { head :status => :ok }
else
format.html { render :action => "new" }
format.xml { render :xml => @conversion.errors, :status => :unprocessable_entity }
end
end
这样,浏览器就会获得一个不存在的.gif图像。有一个更好的方法吗?
答案 0 :(得分:6)
这似乎是一个更简单的解决方案
来源:
http://forrst.com/posts/Render_a_1x1_Transparent_GIF_with_Rails-eV4
而不是渲染,请调用
send_data(Base64.decode64("R0lGODlhAQABAPAAAAAAAAAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw=="), :type => "image/gif", :disposition => "inline")
答案 1 :(得分:3)
简单选项:
format.gif { redirect_to'/ images / x1.gif' }
我认为在/真/旧浏览器(IE5,Netscape可能?)这可能不起作用,所以如果你需要支持那些,那么旧的学校解决方案是实际加载gif的二进制数据并吐出来使用正确的内容类型直接返回浏览器。
答案 2 :(得分:0)
这是我的解决方案
format.gif { send_data Rails.root.join('app', 'assets', 'images', '1x1.gif') }