Ruby is an immensely powerful and flexible language. It makes it possible, even sometimes easy, to perform complicated tasks in a few lines of code. Its metaprogramming capabilities and facilities for creating Domain-Specific Languages (DSLs) allow developers to create frameworks optimized for particular tasks. Rails takes full advantage of these features and offers an opportunity to learn how they can simplify application development.
At the same time, though, these features can be among the most confusing, as they don’t look quite like the normal Ruby programming you’d find in an ordinary tutorial. They can make reading documentation and source code difficult when you’re not familiar with the techniques being used.
Once you’ve gotten comfortable in Rails, learning more Ruby is probably the best way to jump-start your learning process. A thorough understanding of Ruby will let you write more efficient and sometimes even more readable code. It will help you to look through the Rails source code when documentation isn’t quite clear enough about what something is supposed to do. It will let you repackage your functionality as libraries or plug-ins, making it easier to reuse your code.
Part of the promise of Rails is that you don’t need to write a lot of code to get things done, but once you’ve started applying Rails, you’ll want to know a lot more about Ruby. When you’re ready to explore deeply, try The Ruby Programming Language (O’Reilly, 2008), The Ruby Way (Addison-Wesley, 2006), ...