因此,你已经开始使用 Rails 的新 MIME 类型支持,但你一直在想如何添加自己的自定义类型?幸运的是,Geoffrey Grosenbach(又名 topfunky)会 向你展示方法。他的示例包括注册 .png 的扩展名,使用部分 RMagick-fu 为购物车中的订单生成自定义图标。他的示例类似于以下内容
Mime::Type.register "image/png", :png
# then in your controller action
def show
respond_to do |format|
format.html { }
format.png { }
end
end
Mime::Type.register
会将 image/png MIME 类型添加到 MIME 类型集合 中,将其绑定到 .png 扩展名。它还在 Mime::PNG 中创建了一个特殊的 Mime::Type 实例。查看这篇精彩的博文和评论,了解有关缓存和 RMagick 的更多提示。
注意:经过一番研究,我发现如果使用 :format 参数发出请求,则在 Rails 1.2 中无需使用 Geoff 的 :format hack。使用诸如 formatted_post_path(@post, :xml) 之类的路由会让你获得“/posts/1.xml”这样的路径。无论 page_cache_extension 为何,访问该路径都会写入 public/posts/1.xml。