+91-9849263972 contact@qualityexcellence.info

Menu

Ruby on Rails

Ruby on Rails

R

uby on Rails, often shortened to Rails, is an open source full-stack web application framework for the Ruby programming language. Ruby on Rails is not to be confused with Ruby, which is a general-purpose programming language, on which Ruby on Rails runs. As a result, Rails features a routing system that is independent of the Web server.

Technical overview

Like many web frameworks, Ruby on Rails uses the Model/View/Controller (MVC) architecture pattern to organize application programming. In a default configuration, a model in a Ruby on Rails framework maps to a table in a database. By convention, a model named User will map to the database table users, and the model will have a filename user.rb within app/models. While developers can choose to use whatever model name and database table name they wish, this is not a common practice and it's usually discouraged because Rails philosophy is to use convention over configuration.

A controller is the component of Rails that responds to external requests from the web server to the application, and responds to the external request by determining which view file to render. The controller may also have to query the model directly for information and pass these on to the view. A controller may provide one or more actions. In Ruby on Rails, an action is typically a basic unit that describes a single rule on how to respond to a specific external web-browser request. Also note that, if a controller/action is not mapped to the Rails router, the controller/action will not be directly accessible by external web requests. Rails encourages developers to use RESTful routes, which include actions such as: create, new, edit, update, destroy, show, and index, as these are routed automatically by convention in the routes file if specified.

Framework structure

Ruby on Rails is separated into various packages, namely ActiveRecord (an object-relational mapping system for database access), ActiveResource (provides web services), ActionPack, ActiveSupport and ActionMailer. Prior to version 2.0, Ruby on Rails also included the Action Web Service package that is now replaced by Active Resource. Apart from standard packages, developers can make plugins to extend existing packages.

Deployment

Ruby on Rails is often installed using RubyGems, a package manager[21] which is included with current versions of Ruby. Many Linux distributions also support installation of Ruby on Rails and its dependencies through their native package management system.

Ruby on Rails is typically deployed with a database server such as MySQL or PostgreSQL, and a web server such as Apache running the Phusion Passenger module.
There are many Ruby on Rails hosting services such as Heroku, Engine Yard, and Rails Playground.

Philosophy and design

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, Ruby on Rails conventions lead to less code and less repetition.[citation needed] "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.