Is there a canonical book on Ruby on Rails?
I really want to change my PHP specialization to Ruby. I have some Ruby/Rails experience, and I've already created a few Ruby apps and a few Rails apps, but I want to dig deeper. I have limited time everyday for studying, so I'm looking for an effective way to improve my skills.
I want to learn and understand a lot of Ruby-specific topics, e.g.:
- Ruby coding style
- understanding Ruby/Rails internals
- OOP and functional realization
- OO patterns in Ruby
Also any other technologies related to Ruby and Rails that intermediate/senior developers should know.
I don't want to confuse myself by reading/watching everything without a plan, so I need a good roadmap; I could create this plan by myself, but I would like to hear some advice from more professional developers.
Update: here is what I have so far:
- Learn the obscure parts of Ruby syntax; the parts that aren't explained in books that simply cover syntax.
- Learn TestUnit.
- Learn TDD and use it every time I write code.
- Learn Ruby patterns. Ruby's OO architecture is different than PHP/Java/C++, so patterns look different.
- Learn metaprogramming techniques.
- Write my own web server that has common features, e.g. process-based, thread-based. Publish it on GitHub and get help from others at stackoverflow etc.
- Dig into rack.
- Dig into useful gems and tools such as: rake, haml, sass, rspec, nokogiri, capistrano, cucumber etc.
- Write my own simple MVC framework that uses several ORMs. Publish it on GitHub and get help from others at stackoverflow etc.
- Learn Rails by learning every topic from different sources: books, articles, screencasts. For example: learn generators from books, from railscasts, searching at stackoverflow, google groups etc.
- Read Rails-specific topics in Crafting Rails Applications, paid screencasts from RailsCasts, PeepCode, TekPub, Rails for Zombies v2.