The Ruby on Rails phenomenon is sweeping through our industry with reckless disregard for established programming languages, longstanding conventions, or commercial support. You can get a whole lot of information on Ruby on Rails from articles on the Web, excellent books, and even formal coursework. However, there's something missing. How does an established programmer, armed with nothing more than a little Ruby knowledge, go just beyond the basics, and be productive in Rails?
With Ruby on Rails: Up and Running, we are not going to reiterate the reference manual or replace Google. Instead, we'll strive to give you the big picture of how Rails applications hold together and tell you where to go for the information that we don't cover in the chapters. You will see how Rails dynamically adds features to all database models, called Active Record objects. By understanding the big picture, you'll be able to make better use of the best reference manuals to fill in the details.
We won't try to make you digest a whole lot of words. Instead, we'll give you the theory in the context of an end-to-end application. We'll walk you through the creation of a simple project—one that is a little more demanding than a blog or shopping cart, but with a simple enough structure that a Rails beginner will be able to quickly understand what's going on.
We're not going to try to cover each new feature. Instead, we'll show you the ones we see as the backbone, forming the most important elements to understand. We will also cover migrations and Ajax in some detail, because you won't find too much information on those two frameworks yet.
In short, we're not trying to build a comprehensive Rails library. We're going to give you the foundation you need to get up and running.
Ruby on Rails: Up and Running is for experienced developers who are new to Rails and possibly to Ruby. To use this book, you don't have to be a strong Ruby programmer. We do expect you to be a programmer, though. You should know enough about your chosen platform to be able to write programs, install software, run scripts using the system console, edit files, use a database, and understand how basic web applications work.