views:

334

answers:

1

If I want to match x.gif and y.gif, is it possible to pass a URL to map.connect that encompasses the possibilities of both filenames something like this:

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

And then receive the param in my StaticImageController as 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

Besides the fact that what I am doing here violates the principles of convention over configuration in Rais, does this look right?

+2  A: 
map.connect '/public/images/:filename', :filename => /\.gif$/

will do it.

Ben Hughes
What's the last part for? (:filename => /\.gif$/)
pepe
it says that for the route to apply, the filename parameter has to match the regex /\.gif$/
Ben Hughes