Ruby on Rails

Rails is an open source web framework, written in Ruby that allows you to build wholesome and safe web application in a flash. Everything in rails is designed to make the life of a developer as easy as it could ever get. It does so by creating everything you may need for a web application with the bash of a few keystrokes.

History and Timeline
Created in 2003 by David Heinemeier Hansson, or ‘DHH’ as his digital tracksuit persona. Rails derives from the work DHH did on an older web app development tool, Basecamp.
In 2004, Rails was released on the web as an open source project.
In 2005 rails on rails version 1.0 was released.
In 2006 apple bundled rails with OSX Leopard.
In 2009 new developments in templates, engines and Rack introduced.
In 2011 features reversible database migrations, jQuery as a default library for Javascript.
15 years on, along with 100,000 commits later, Rails has been tested and proven by huge co operations such as Twitter, Airbnb, GitHub, Groupon, Soundcloud, Hulu.
Rails Principles

MVC Architecture
A design which separates your app into 3 separate components.
The Models are Ruby classes which handle the business logic and the heavy lifting, they talk with the database, validate, pull and put data into the database.
The Views are a mixture of static and dynamic templates that render the right data from your models and handle the logic of the front-end presentation that the user sees and interacts with.
Controllers are a server side component which sit as the link between the model and the view, navigating the traffic flow of the application. They handle the requests by users, query the models and collect the relevant instances for the file to render.
In Rails, an action is a unit that describes how to respond to a specific external web-browser request. The action will only respond if a corresponding route is mapped to it.
Rails pushes developers towards RESTful routes, which include actions such as create, new, edit, update, destroy, show, and index. These actions direct the user requests to controller actions that can be set up in the routes.rb configuration file with a couple lines of code.
Convention over Configuration
Also known as the Rails way, a set of assumptions, defaults that are considered the best way to do things. Rails is designed to do things in a certain way and ultimately discourages developers from moving away from those fundamentals. That way, it lets you spend your time coding and not spending time setting up endless configuration files as well as bring together the world in conforming in an organised way of building, editing apps.
Don’t Repeat Yourself
A software fundamental that aims to reduce repetition in code and abstracting common codes into a method that can be called on when needed. The aim of DRY is to make code easier to maintain, easier to extend and build on, as well as efficiency for debugging.

Rails without Ruby!?
Although you don’t need to learn Ruby before getting into Rails, knowing some basic Ruby syntax can send you a long way with rails.
