One of the problems with learning Rails is knowing which of the thousands of resources to use. There are an ever-increasing number of books, blogs, screencasts and tutorials to choose from, all with their own take and idiosyncrasies. This is by no means a definitive list, but it’s the resources that I’ve found most useful.
The canonical site
The main site for all things Rails is rubyonrails.org, which is also the place to go for the source code and API documentation.
The canonical Ruby book
Known as the ‘Pickaxe’, Programming Ruby 1.9 is the definitive Ruby guide. In the latest edition it covers Ruby 1.9 in detail - while it won’t be of much use if you’re completely new to programming, it’s probably the best place to start if you’re coming from PHP, .Net or any other language.
The alternative to the canonical Ruby book
The Ruby Koans are an interactive Ruby tutorial from a testing angle - you learn the detail of the language by fixing failing tests. The advantage of this approach is that you have to think about what you’re doing, and you have to learn by example. They’re very effective.
The canonical Rails book
Agile Web Development with Rails (4th ed) is the definitive “learn Rails from the ground up” text. It’s not perfect, but it’s a very good start, and is in the process of being updated for Rails 3 and Ruby 1.9.
The definitive tutorial
Michael Hartl’s Ruby on Rails Tutorial is an excellent starting point, not least because it introduces test-driven development right from the outset. There’s also a printed book and supporting videos, but the main online tutorial is free.
The definitive guide to testing
The RSpec Book won’t be much use until you’ve got your head around Ruby and Rails in general, but covers behaviour- and test-driven development in exhaustive detail. The title is somewhat misleading, though, because as well as RSpec it also covers Cucumber testing in detail too.
The beginner’s guide to programming
If all of the above means absolutely nothing, you probably need Chris Pine’s Learn to Program. It does exactly what it says on the cover, and does it with Ruby.
The mother-lode of screencasts
Railscasts are online video tutorials that cover a vast array of plugins, gems and mini-projects. They’re a good way of picking up real-world techniques once you’ve got the hang of the “canned” versions from the books and the tutorials. If you don’t want to watch them in realtime, Asciicasts have text versions of most of the Railscasts.
If you’re serious about learning Ruby and Rails, you’re going to need it installed - but if that’s not practical, TryRuby is a Ruby interpreter that runs in a browser.
If you’re not serious about learning Rails (or rather you want to learn it in a non-serious way), Rails For Zombies is very silly.