Ruby on Rails was extracted by David Heinemeier Hansson from his work on Basecamp, a project management tool by 37signals (now a web application company).
My developer credentials lie rooted firmly in a bedrock of programming and as such I absolutely adore Ruby on Rails. For years I struggled with custom ASP, ASP.NET, PHP and Java projects always finding myself writing unnecessary code or struggling with overcomplicated frameworks. Ruby on Rails solved both these problems with its brilliant implementation of an MVC architecture and pleasing Ruby syntax. For those projects that don”t fit into the Blog/Brochure or e-commerce realm Rails is often where I turn.
Like many web frameworks, Ruby on Rails uses the Model-View-Controller (MVC) architecture pattern to organize application programming.
Ruby on Rails is intended to emphasize Convention over Configuration (CoC), and the rapid development principle of Don’t Repeat Yourself (DRY).
“Convention over Configuration” means a developer only needs to specify unconventional aspects of the application. For example, if there is a class Sale in the model, the corresponding table in the database is called sales by default. It is only if one deviates from this convention, such as calling the table “products sold”, that the developer needs to write code regarding these names. Generally, this leads to less code and less repetition.
“Don’t repeat yourself” means that information is located in a single, unambiguous place. For example, using the ActiveRecord module of Rails, the developer does not need to specify database column names in class definitions. Instead, Ruby on Rails can retrieve this information from the database based on the class name.