> It looks it wouldn't be hard to hack that in, but maybe there's 
> another way?

I've had the exact same problem. This is a little part of my solution:

class CGI
     def query_parameters
       @qp = parse_query_parameters(query_string) if @qp.nil?
       @qp
     end

     def parse_query_parameters(query_string)
       parsed_params = {}

       query_string.split(/[&;]/).each { |p|
         k, v = p.split('=')
         parsed_params[CGI.unescape(k)] = v.nil? ? nil : CGI.unescape(v)
       }

       return parsed_params
     end
end

Now you should be able to access all the query_parameters from the hash 
returned on that method. Regardless of whether the request was POST or 
GET. I doesn't take much effort to include this seemingly with the 
original params method, so you don't have to distinguish between GET 
and POST variables.

The full CGI extension I did, which also turns 
"person[address][street]" style inputs into hashes (like PHP), is 
included in Rails. The upcoming web-application framework that 
currently is just the mirage available at http://rails.nextangle.com/ 
but hopefully soon will be a released reality.
--
David Heinemeier Hansson,
http://www.basecamphq.com/   -- Web-based Project Management
http://www.loudthinking.com/ -- Broadcasting Brain