2009-06-22 68 views
1

如果我想匹配x.gify.gif,是否有可能通过一个URL来map.connect涵盖的两个文件名称是这样的可能性:map.connect是否接受URL中的通配符样式格式?

map.connect "public/images/:name.gif", 
    :controller => "static_image_controller", 
    :action => "serve" 

,然后接收param在我StaticImageController作为params[:name]

class StaticImageController < ApplicationController 
    def serve 
    image_name = params[:name] 
    image = File.read(File.join(Rails.root, image_name)) 
    send_data image, :type => "image/gif", :disposition => "inline" 
    end 
end 

除了我在这里做的事实违反了Rais中的约定配置原则外,这看起来是正确的吗?

回答

3
map.connect '/public/images/:filename', :filename => /\.gif$/ 

会做到这一点。

+0

最后一部分是什么? (:filename => /\.gif$/) – pepe 2009-06-22 22:58:23

+0

它表示对于要应用的路由,filename参数必须与regex /.gif$/匹配 – 2009-06-22 23:00:47