I've been through the gamut of web hosts. I started on a shared host when I was using ASP.NET with Microsoft and SQL Server. The site worked and support was ok, nothing to brag about. I soon found out that my host couldn't support what I was wanting to do (host an open-source CMS called DotNetNuke) so I soon switched to another host that would. Things worked fine, but my sites always just seemed a bit sluggish.
I soon learned that if I wanted things to work exactly how I wanted them, I had two choices: 1) Buy a server and all the software that goes along with it and house it in a colocation facility somewhere (too expensive for me at the time), or 2) find a dedicated server hosting plan where I can do what I wanted to the server to make it run optimally for what I was doing. So, I chose option 2 and found a local company that, I must say, did a great job - CrystalTech.
Then I got to thinking. For the amount of bandwidth I was using and the resources I needed, I could easily configure my old dell with the software I need to run as a server if I could only somehow manage to get some dedicated IP Addresses from my ISP, which at the time was Cox. Eventually I ended up switching ISPs to Qwest since they could give me the IP Addresses I would need and a reasonable amount of bandwidth (3M/1.5M) for a reasonable price (I think it was like $80/month). This worked great and was a great learning experience, but it turned out to be more of a headache than I wanted to deal with - or had time to deal with. Also, I was starting to dabble in open-source technologies like Linux, PHP, Ruby on Rails, MySQL and Drupal.
So, back to the drawing board I go. I found Site5.com who supported the new open-source projects that I was playing with. They were cheap, but again, my sites were so dang slow. Then I moved to DreamHost who had a really great deal at the time. The plan I got let me host unlimited domains with some ungodly amount of disk space and bandwidth, of which I would never use. But, again, my sites were too slow. At Dreamhost I knew it was the database connections. I couldn't access my databases using localhost, I had to specify an http address which I'm sure is what was causing some of the slowness - on top of the 20 to 30 other sites that were being hosted on the same machine.
Then God said, "Josh you need a real host!" and showed me the light. That light you ask? Its RimuHosting! They offer a great variety of Virtual Private Server (VPS) and Dedicated plans. I searched and searched and searched and saw there name mentioned in a few places. I read every word on their web page, scoured their support forums, of course Google'd them to see if I could find any dirt - like a good little consumer that I am. And, nothing, everything I found was good stuff. So, I signed up for a VPS plan and I haven't looked back. My account was setup in like 30 minutes - YES 30 minutes for a VPS and the guys over there seem really cool and know what they're doing.
I'm not writing this as some sort of advertisement, and no, I'm not being paid. I'm just so thrilled with the plan and the support I've received. Oh yeah, and notice the speediness of my sites? You can attribute that to Rimuhosting too. They let you pick your OS and then you can do whatever you want with it. I chose Ubuntu server with Lighttpd, MySQL, php, fast-cgi, and XCache. Zippity-doo-da-day!!!
For you folks looking for Rails hosting, they have a Rails stack too. Haven't looked into it, but I can only imagine its good stuff!