Playing with rails, one might note that it seems to be primarily database driven design (vs. domain driven design.) Why not generate the tables versus generating the model? There must be a good reason. I think the active record pattern is limiting for domains with complex structures that are best suited to object oriented design (whatever that means). While relational databases have some powerful features, they just aren't as good from a team/development, code maintenance perspective.