Ruby is a well known and used general purpose programming language since long. In July 2004 David Heinemeier Hansson released the first ruby on rails as an open source full stack web application framework that runs on Ruby programming language. This Rails provides the web developer the full ability to collect information from the web server, searching the database and template rendering out of the box.
Hence Rails features a unique routing system which is fully independent of the web server. Though Hasson released the open source, until Feb 2005 he didn’t share the commit rights to the project.
A milestone was reached in the year 2006 when world leader Apple announced that it would use Ruby on Rails with Mac OS X v 10.5 “Leopard”. It was introduced in 2007. Then a new upgraded Version 2.3 was launched in the year 2009 which had many new features that included templates, Rack, engines and nested model forms. In this version, the web developer was offered to generate a skeleton application with the use of the templates with custom gems and configurations.
The Rack web server interface enabled to write optimized code pieces that could route around Action Controller. Engines allow one to reuse application pieces complete with routes and help view paths and models. Another we application framework called Merb merged with Rails as apart of Rails Version 3.0. Later in the year 2011, Version 3.1 was introduced which featured asset pipeline and reversible database migrations.
Ruby on Rails: A Brief Account
The main philosophy of ruby on rails is to stress ‘Convention over Configuration’ (CoC) follow the principle ‘Don’t Repeat Yourself’ (DRY).
‘Convention over Configuration’ means that a web developer just requires specifying unconventional prospects of the application. Hence Rails leads to less use of codes and repetition.
‘Don’t Repeat Yourself’ implies that the information is located in a single unambiguous area. The web Developer does not require specifying database column names in class definitions using the ActiveRecord module. Rails have the capacity to retrieve this information from the database based on the class name.
Like most of the web frameworks, ruby on rails too uses the Model/View/Controller or MVC architectural pattern to prepare application programming. The default configuration framework maps to a table in a database. By convention, a model called User will map to the database table users. The model will include a filename called user.rb within app/models. Web developers can select and use any model name and database table name according to their choice, is discouraged as the philosophy is to use convention over configuration.
A controller is an important component that responds to external requests from the web server to the application. It then responds to the coming external request by ascertaining which view file to deliver. The controller may also query the model directly for data and pass this information on to the view.
In the words of Tim O’ Reilly, Founder of O’Reilly Media –
Ruby on rails is a breakthrough in lowering the barriers of entry to programming. Powerful web applications that formerly might have taken weeks or months to develop can be produced in a matter of days.
Quite a few Linux distributions also support installations of Rails through their own package management system. A number of ruby on the rails hosting services are available like Engine Yard, Heroku and Rails Playground.