Started stepping through OnLAMP’s Ruby on Rails tutorial this evening. A lot of foreign concepts — brave new world compared to PHP development. Then, suddenly, on page 3, I added a field to my database and wham! — that field was added to all relevant pages of my application. A text entry field for the edit, create, and update pages, and an appropriate column on the display pages. Number of lines of code added to the application: Zero the Hero. Change that field’s position in the database table, and its placement throughout the application changes automatically. The application automagically models itself after the form of the database. The dataset is the model for the application.
Granted, we’re just talking about the scaffolding here, but when I stopped to think of the number of files I need to modify in a PHP application to get the same effect (and how many times I’ve needed to wheedle through exactly that kind of repetitive work), just had to roll my chair back from the desk and take a deep breath. This has some pretty stunning ramifications.
Also amazing how much mileage Rails gets out of simple naming conventions. Name a model class Recipe and it will automatically map to a corresponding database “recipes” (the pluralization translation happens automatically). Stick to the conventions, and the need to write database CRUD (create, read, update, delete) code goes away. And elegant URLs are totally automatic too.
Newbie steps, but all of a sudden I’m “getting” what all the fuss is about.