Ruby on Rails Glossary

Controller - A controller is the name for a collection of actions in an MVC application. Routes direct a request to a controller's action. From there, the controller is used to manage the user's request and determine which business logic that are executed in an application.
Generate Command - The rails generate command is used as a shortcut for installing and creating models, controllers, actions, routes, and initializers to save the developer time when creating an application. Rails provides a set of templates that can be used to generate code. Gems can also provide their own generators.
Git - Git is a distributed version control and source code management system that allows you to track changes and additions to your code over time.
Layout - A layout is the outer aspects of an HTML document. Typically, the layout includes the header, navigation, and footer but not the main content of the page.
Migration - A database migration is a set of changes to the database that can be executed and reversed to provide consistency to the database structure. An example of this is adding a column or table to the database. Migrations are marked with a timestamp so that each database knows the most recent change that was made.
Model - A model in a Rails application is typically a representation of a database table. It is used for storing, querying, and manipulating data in the application.
MVC - Model, View, Controller (MVC) is a software pattern that separates the representation of information from the user's interaction with it. In general, the controller determines which models to interact with and which views are used to display the data.
Page - A page typically refers to the completed HTML document that is returned from a web application and displayed in the user's browser. Normally this corresponds to a specific URL on a web site or application.
Rake - Rake is a software task management tool that allows you to define tasks that are often repeated such as running database migrations and deploying code to servers.
Request - A request is when a user's browser asks for a response from your web application.
Resource - A resource is an object that you can create, read, update, and delete (CRUD). Resources are usually referenced as a part of RESTful application design.
REST - Representational state transfer (REST) is a style of software architecture for distributed systems such as the World Wide Web. It is designed around the idea that an application has designated objects that you can create, read, update, and delete (CRUD).
Routes - Routes are the URLs that your web application responds to. Examples might be "/blog" and "/archive".
Routing - Routing is the decision making process of a web application that is handling incoming requests and determining which actions should happen as the result of the request.
Ruby - Ruby is a dynamic, reflective, general-purpose object-oriented programming language created by Yukihiro Matsumoto in 1995.
Ruby On Rails - Ruby on Rails, often simply Rails, is an open source web application framework which runs on the Ruby programming language. It is a full-stack framework: it allows creating pages and applications that gather information from the web server, talk to or query the database, and render templates out of the box. As a result, Rails features a routing system that is independent of the web server.
SASS - Rails now ships with SASS / SCSS support which is an extension of CSS3 that cleans up the syntax of CSS significantly. Developers can spend their time writing more readable code without having to deal with the nitty gritty requirements of writing plain CSS.
Scaffolding - Scaffolding is a shortcut provided by Rails that creates a controller, set of actions, views, and routes for resources. Often used to impress people with how quickly you can build things in Rails, using scaffolding is generally frowned upon by experienced developers.
Test Driven Development - Test Driven Development (TDD) is a method of developing software where the requirements are first written as tests. These tests define actions the software should take and the expected results. Once the tests are written, the developers begin building the software to properly return the correct results for each test. The idea is that when using TDD is that software development can be much more consistent when you have a set of tests that all code must run against. Changes to software that break a test quickly show where broken code was introduced.
Testing - Testing is the practice of building programmatic requirements such that the software being created must return expected results for given situations. This helps to detect bugs sooner throughout the development of an application and, ideally, produces software that is more stable.
Version Control - Version Control is a way of managing changes to software, documents, and other files related to a project. Each change is listed as a "revision" combined with the author of the change and notes explaining why it was made.
View - A view describes the HTML response of a request but it doesn't include the outer HTML layout of the page, simply the HTML content that is unique to the page.