The Model-View-Controller pattern (http://en.wikipedia.org/wiki/Model-view-controller) has proven itself to be a successful way of structuring a web framework. As applied to web projects, the pattern requires a separation between the representation of the data (the model), the way the data is presented in an HTML page to the user (the view), and the methods used to move data from component to component and map URLs to functional pieces (the controller). On large projects each of these layers may be performed by different individuals or different teams, and frameworks that enforce this separation can facilitate smooth development across varying skill sets. Rails is an MVC framework, as are all three of the frameworks discussed in this Short Cut.
Central to the adoption of Rails have been some previously overlooked "marketing" features:
Easy-to-follow screencasts and tutorials
Project creation scripts that set up running applications right away
Integrated zero-configuration development servers
These three features enable anyone with 20 minutes to jump into a framework and start producing results. A kind of arms race has emerged in this area, with various frameworks jostling to pack the greatest number of features into a "20 minute" wiki or blog application.
Rails includes the now-standard "full-stack" feature set:
An Object Relational Model (ORM): a code library which maps SQL database rows and tables onto objects and classes
Clean template language ...