I have a Rails route that takes stock ticker symbols as the :id
feeds/AMZN will return a page for Amazonfeeds/AMZN.csv will ret
I ran into this as well, but in the reverse direction. (url_for() produces "No route matches" only for IDs with . in them.)
I'm using match instead of resources to allow some name munging. If you're doing the same, this is what the fix looks like:
match "feeds/:id" => "stocks#feed", :constraints => {:id => /[\w.]+?/, :format => /html|csv/}