I get the same result if I use a bad password; however if I inspect the Authorization header it is the same that curl sends (on a correct password of course).
I have tried most everything I can get my hands on, the specific gem was rpcjson, but I have some very basic test code that uses no gems (just standard Ruby calls) to try and debug this: http://pastie.org/5035939
Because this works with curl and bitcoind your service is obviously working, I would just appreciate some help in debugging as I have no idea what else to do here (and perhaps you can see more than I can).
I'll do a bit of debugging later tonight. Are you url encoding rpc_user & rpc_pass?
I tried; however I changed my password to not require it (and it didn't work anyway). Also I inspected the authorization header value and it matched CURLs (curl -v) which did succeed. I don't even get an error, it just drops the connection on the ground.