如何在respond_to do |format|
区块内返回图像?
我已经完全组装了图像(即没有丑陋的博客组装)和特定的URL(因为它位于公共文件夹中),我只需要能够为特定的其他URL查询返回该图像。 / p>
例如,图像在
中public/cars/userid/car_id/random_name.JPG
我希望能够在用户访问
时提供该图像http://mywebsite.com/car_id.JPG
因为让用户必须知道userid
和random_name
,这是令人望而却步的。我的网址public/cars/userid/car_id/random_name.JPG
已经为@car.public_filename
,因为@car
是attachment_fu
个对象。
答案 0 :(得分:1)
您可以将浏览器重定向到图像:
redirect_to @car.public_filename
答案 1 :(得分:1)
您还可以编写一个小型Metal中间件,将所有/car_id.JPG网址重新路由到真实文件:
#app/metal/serve_car.rb
# Allow the metal piece to run in isolation
require(File.dirname(__FILE__) + "/../../config/environment") unless defined?(Rails)
class ServeCar
def self.call(env)
if env["PATH_INFO"] =~ /^\/car_(\d+).JPG$/
path = Car.find($1).public_filename
[302, {"Content-Type" => "text/html", "Location" => path}, ["You are being redirected"]]
else
[404, {"Content-Type" => "text/html"}, ["Not Found"]]
end
end
end
答案 2 :(得分:0)
如果您想在respond_to
中使用其他mime类型,可以在config/initializers/mime_types.rb
中添加。这是一个例子:
Mime::Type.register "text/richtext", :rtf