Development Tools

Ruby on Rails – web application framework

Ruby on Rails, often shortened to Rails, is an open source full-stack web framework in Ruby for writing real-world applications.

Being a full-stack framework means that all layers are built to work seamlessly together. That way you don’t repeat yourself and you can use a single language from top to bottom. Everything from templates to control flow to business logic is written in Ruby.

Rails is a mature application with its development starting in 2003.

Key Features

  • Uses the Model/View/Controller (MVC) architecture pattern to organize application programming:
    • The View layer is composed of “templates” that are responsible for providing appropriate representations of your application’s resources. Templates can come in a variety of formats, but most view templates are HTML with embedded Ruby code (.erb files).
    • The Model layer represents your domain model (such as Account, Product, Person, Post) and encapsulates the business logic that is specific to your application.
    • The Controller layer is responsible for handling incoming HTTP requests and providing a suitable response. Usually this means returning HTML, but Rails controllers can also generate XML, JSON, PDFs, mobile-specific views, and more. Controllers manipulate models and render view templates in order to generate the appropriate HTTP response.
  • ORM – ActiveRecord.
  • Testing frameworks – unit tests, functional tests and integration tests.
  • DB migration frameworks.
  • Plug-in security frameworks.
  • Template frameworks.
  • Caching frameworks.
  • Form validation frameworks.
  • Automatic Query Explains.
  • Database Access Library: Ruby on Rails includes a database access library – Active Record – that simplifies data handling in databases. Active Record automatically maps tables to classes and rows to objects.
  • Libraries for common tasks: Ruby on Rails includes a host of libraries that simplify the coding of common programming tasks such as form validations, sessions management, etc.
  • AJAX Library: An extensive library of AJAX functions is provided in the Rails framework. Ruby code can be used to generate AJAX code. The associated java scripting required for AJX gets generated automatically.
  • Convention over configuration: Ruby on Rails does not have any XML configuration files. It includes simple programming conventions that can be used to specify the configuration parameters.
  • Customized URL: Custom or Search Engine Friendly URLs can be developed using the Ruby on Rails framework.
  • Debugging: Detailed error logs are provided, making it easier to debug applications.
  • Components: Components can be used to store reusable code. Components can be included to modularize templates.
  • Tagged logging.
  • Low on dependencies.
  • Internationalization support.

Website: rubyonrails.org
Support: Guides
Developer: David Heinemeier Hansson
License: MIT License

Ruby on Rails is written in Ruby. Learn Ruby with our recommended free books and free tutorials.


Related Software

Ruby Web Frameworks
Ruby on RailsFull-stack web framework in Ruby for writing real-world applications
SinatraDSL for quickly creating web applications in Ruby with minimal effort
GrapeREST-like API framework for Ruby
HanamiFull-stack Ruby web framework
PadrinoFull-stack ruby framework built upon Sinatra
UtopiaWebsite generation framework

Read our verdict in the software roundup.


Best Free and Open Source Software Explore our comprehensive directory of recommended free and open source software. Our carefully curated collection spans every major software category.

This directory is part of our ongoing series of informative articles for Linux enthusiasts. It features hundreds of detailed reviews, along with open source alternatives to proprietary solutions from major corporations such as Google, Microsoft, Apple, Adobe, IBM, Cisco, Oracle, and Autodesk.

You’ll also find interesting projects to try, hardware coverage, free programming books and tutorials, and much more.

Know a useful open source Linux program that we haven’t covered yet? Let us know by completing this form.
Subscribe
Notify of
guest
0 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments