See the blue info box here:
By default dynamic segments don’t
accept dots – this is because the dot
is used as a separator for formatted
routes. If you need to use a dot
within a dynamic segment add a
constraint which overrides this – for
example:id => /[^\/]+/
allows
anything except a slash.
That would for example be:
get "/:user/contributions" => 'users#contributions', :constraints => { :user => /[^\/]+/ }