Ruby on Rails (or “Rails”) is an open-source web application development framework written in the Ruby programming language. It’s one of the most popular Ruby libraries and one of the top reasons developers choose to learn Ruby.

Modern web applications can be very complex with many layers. Rails makes web development easier, providing a pre-built structure for development and everything you need to build a web app.

Here, we’ll look at what Rails is used for, its advantages and disadvantages, and what jobs you can get if you know this framework. Then, we’ll show you how to get started using it to build your own web apps.

What is Ruby?

Before diving into Rails, you need to know a little about Ruby. Ruby is an open-source, general-purpose programming language that’s used for web development, data processing, automation, and more. It’s flexible and portable — meaning you can run it on every operating system — and it’s in high demand, ranking fifth in Stack Overflow’s list of the highest-paying programming languages.

Ruby is dynamically typed and uses a minimalist syntax much like Python. It’s concise, using spacing to organize code in lieu of brackets or other symbols to define blocks within a script. Below is a simple loop that cycles through a list of languages and prints all the entries that start with the letter ‘r’.

languages = ['pearl', 'python', 'ruby', 'rust', 'r']
languages.each do |i|
  if i.start_with?('r')
    puts i

What is Ruby on Rails used for?

We explained that Ruby on Rails is a web framework, but it helps to know what a web framework is to know just how powerful a tool like Rails can be.

A framework simplifies the creation of web applications. It does this by providing default structures for your code, any databases you use, and the web pages the application will serve.

You can think of a framework almost like Legos. With a framework, you get pre-built “Legos” of code that you can mix, match, and modify to build a custom web application, which means you don’t have to create everything from scratch.

Ruby on Rails uses the Model-View-Controller (MVC) architectural pattern used by many other web frameworks — one of the most well-known patterns in development. The MVC pattern separates a web application’s code into three interconnected parts:

  • The Model, which holds the data structure of the application.
  • The View, which represents the visual part of the web app as web page templates.
  • The Controller, which connects the data to the View and contains the business logic of the application.

This pattern makes Rails very flexible and useful for all types of web applications.

Rails has been used for many types of web apps. You can use it to build complete web applications that span both the front end and the back end.

The Model and Controller would be considered the back-end part of the application. The View handles the front end by generating the actual web page that people see in the browser, along with included JavaScript and HTML. You can also use Rails to create web services or APIs that return JSON for use by other applications.

What are the advantages and disadvantages of Ruby on Rails?

The biggest advantage to Rails is that it makes web development quick and easy. This means a small team of developers can create a web app and deploy it quickly.

The Ruby programming language ecosystem also provides libraries that can extend the Rails framework with even more pre-built features. It’s been a top choice of frameworks for many startups because of these reasons.

Ruby on Rails is one of the best choices of frameworks if:

  • You need to handle complex business logic
  • You need to find developers to build an application readily and quickly
  • You have a limited budget
  • You want to deliver a web app quickly

Many companies that start with Rails stick with it. But, there are a few disadvantages that make some companies choose other technologies.

Ruby doesn’t support many machine learning libraries, so Python could be the better choice for applications that require that type of data processing. Rails also isn’t the fastest, but it isn’t much slower than other frameworks. Still, if you need an ultra-lightweight application, Rails may not be the best choice.

What jobs do you need to know Ruby on Rails for?

There are a variety of jobs you can get if you know Ruby on Rails.

A junior or entry-level Web Developer job may require that you know Rails. Some of these jobs may be back-end web development jobs where you’ll spend most of your time writing code with Rails. In any of these positions, your duties might include:

  • Creating templates that generate web pages for the front end
  • Writing web services that return JSON for JavaScript-based front-end applications
  • Writing server-side code in Rails and front-end code using JavaScript, HTML, and CSS

Ruby on Rails is used in all types of industries to build web apps and services. This includes applications like marketing websites, CMSs, eCommerce sites, and custom web applications. It’s a popular web framework for startups because its ease of use makes for quick application development with small teams.

But, Rails has also been around for a while, so you’ll find it used in traditional companies as well. Some well-known companies that use Rails include Basecamp, Shopify, Airbnb, Crunchbase, Square, Soundcloud, Sendgrid, Pitchfork, Github, Yammer, ETC Slideshare, Scribd, Groupon, Hulu, Kickstarter, Zendesk, and Gumroad.

Getting started with Ruby on Rails

So, what do you think of Ruby on Rails? Want to check it out? If you have a Windows computer, the video below will walk you through the steps required to install Rails on your machine:

If you have a Mac OSX computer, then you can use this video:

If you’re using a Linux computer, you can install Ruby on Rails with these instructions from the official Rails site.

Ready to get started? Our Learn Ruby course will teach you basic programming concepts and the fundamentals of programming with Ruby. Then, jump into Rails with the courses below:

Ruby Courses & Tutorials | Codecademy
Ruby is a dynamic, general-purpose programming language most commonly used for Web Development. Its key designer, Yukihiro Matsumoto, said that Ruby was designed for humans, not machines, making it a favorite of many developers and tech companies. Its most popular implementation is with the powerful…

Web Development Courses & Tutorials | Codecademy
Web Development is the practice of developing websites and web apps that live on the internet. Whether you’re interested in front-end, back-end, or going full-stack, the content in our Web Development domain will help you get there.

Related articles

7 articles

10 Ruby Code Challenges for Beginners

By Stephan Miller

Check out these beginner Ruby challenges to sharpen your skills. Our programming courses can get you ready for a rewarding career in programming with Ruby.


Should I Learn Ruby?

By Stephan Miller

Trying to decide if you should learn Ruby? This article introduces you to the Ruby programming language to help you decide if it’s the right language for you to get started with.