Here is my idea on how to start learning Ruby from scratch.
Ruby in Twenty Minutes (free)
This short 4-page intro will give you an idea about syntax and the general feeling of a language.
Programming Ruby (free)
Next stop is an excellent book – “Programming Ruby”. You will learn about classes, objects, iterators, blocks and exceptions. You can read it till “Basic Input and Output” chapter and postpone the rest for later.
Ruby Koans (free)
After you are done with “Programming Ruby” I bet many things will remain unclear and many will be forgotten almost immediately without good practice. This is when you get to “Ruby Koans”. It’s an awesome collection of tests thathelp you to learn ruby while reading and fixing real code. Seriously, don’t miss this step, it is really helpful and you will learn a lot.
Russ Olsen is a great author. His books like good literature, you never get bored. “Eloquent Ruby” teaches you good style, walks you through advanced technics, goes deep inside of ruby object model, gives you first understanding of metaprogramming and DSL.
You can’t be a serious Ruby developer without good understanding of what’s the use of metaprogramming. Great reading, especially it will help to uncover many “magic” tricks in such frameworks as Rails that were unclear before. You begin to understand how stuff works in frameworks and libraries.
Back to Russ Olsen. This book will help to refresh some of your knowledge about fundamental stuff from computer science: design patterns and how to use them.
Now when you know how to code, you have to learn how to design application, organize the whole development process and test your code. This is essential to learn about BDD, RSpec and Cucumber.