So, I’ve been learning ruby, but what is this rails thing? It turns out that Rails is a web application framework that runs on Ruby and is designed to make building web applications fast, easy and, dare I say fun.
The primary two design philosophies underpinning the Rails framework are: (1) Don’t Repeat Yourself (2) Convention Over Configuration.
Don’t repeat yourself (DRY) is something you’ve no doubt heard before, which is principle best (and often) summarized in the following statement: "Every piece of knowledge must have a single, unambiguous, authoritative representation within a system."
Convention Over Configuration reflects that Rails is "opinionated software" that believes there is a right way of doing things, which should generally be followed. What this means in practice is that when configuring standard components of a web application you can rely on Rails to configure certain parameters to known defaults, rather than worrying about minutiae and config files. This lets you do the more interesting side of programming and leaves the rote steps to Rails.
For example, getting a new application started takes just one line in the terminal.
$ rails new blog
This auto generates 14 files and folders covering everything from the app/ folder to the README.rdoc. This setup follows oft used convention and saves you from time wasted with configuration. Such opinionated commands are at the heart of Rails.