Ruby on Rails: Training and Skills to Build Web Applications

Designed for entrepreneurs who want to learn to code their own ideas. No prior experience needed.
4.6 (205 ratings)
Instead of using a simple lifetime average, Udemy calculates a
course's star rating by considering a number of different factors
such as the number of ratings, the age of ratings, and the
likelihood of fraudulent ratings.
9,334 students enrolled
84% off
Take This Course
  • Lectures 43
  • Length 7 hours
  • Skill Level All Levels
  • Languages English, captions
  • Includes Lifetime access
    30 day money back guarantee!
    Available on iOS and Android
    Certificate of Completion
Wishlisted Wishlist

How taking a course works


Find online courses made by experts from around the world.


Take your courses with you and learn anywhere, anytime.


Learn and practice real-world skills and achieve your goals.

About This Course

Published 1/2014 English Closed captions available

Course Description

Why Take this Class?

This course is the one I wish I had when I first taught myself to code.

I spent a year wading through coding exercises, programming books, and online tutorials. Similar to traditional education, I thought I had to learn everything from the ground up—first master the basics of HTML, then pick a programming language, then learn to build simple functionalities, then develop more advanced features.

But really, I just wanted to know how to build a website that does “___________” (fill in the blank with your own million dollar idea). When I finally finished building my first website, I realized I had been learning it all wrong for my purpose.

So if your goal is to master a programming language and become the ultimate software engineer, this may not be the course for you.

If, however, you’re looking for an effective way to rapidly implement your ideas on the web, you’re in the right place. Read on.

What You’ll be Learning

This course will take you through building an online marketplace similar to Etsy. You will learn to develop functionalities common to many websites including:

  • Upload product listings complete with prices, descriptions, and images
  • Create user accounts and login to see personalized dashboards
  • Implement powerful design features with CSS
  • Accept credit card payments and initiate transfers to third-party bank accounts
  • Secure your sensitive account data
  • Deploy your website live

Along the way, we'll learn to use the latest versions of popular technologies. We’ll be working with Ruby on Rails, as well as front-end tools like Twitter Bootstrap and CSS. We’ll touch upon databases with SQLite; APIs with Stripe; and even hosting platforms such as GitHub, Heroku, and Dropbox. The skills you’ll have learned will be valuable for building any idea.

About BaseRails

BaseRails is a video learning platform that teaches Ruby on Rails and other technologies through building real world projects. Our collection of project-based courses walk you through coding robust applications like Etsy and Yelp while covering the most relevant programming topics, APIs, and tools used by developers.

Whether you're learning to code to become a web developer, or just looking to prototype your MVP, we believe working on projects is the most effective way to learn. Instead of being taught theory, you’ll learn by building working applications. You understand the big picture concepts before filling in the details. You learn to build apps the way developers do — one feature at a time.

Most people feel demotivated when they take traditional programming classes, but with BaseRails, you’ll make rapid progress on your projects so you always stay engaged. Along the way, you learn in-demand tech skills through practice and solving problems with available resources, not through brute memorization.

With a growing community of students who love our practical approach, we aim to become the leader of online, project-based learning for every subject.

Enroll on for a free account.

What are the requirements?

  • All software will be free to download and will be covered in the course

What am I going to get from this course?

  • By the end of this course, you will be able to build a complete web app with the skills to apply your learnings to any idea.
  • You will learn how to use Ruby 2 and Rails 4 to rapidly prototype your ideas.
  • You will learn the basics of front-end web design with Bootstrap 3.
  • You will learn how to work with APIs by using the Stripe API to implement payments.
  • You will learn how to implement features such as user login, data validations, image uploads, order forms, seller dashboards, and purchase histories.
  • You will learn how to navigate GitHub and Heroku.
  • You will learn how to read documentation to install and setup open-source code.

Who is the target audience?

  • Anyone who is interested in learning to build websites.

What you get with this course?

Not for you? No problem.
30 day money back guarantee.

Forever yours.
Lifetime access.

Learn on the go.
Desktop, iOS and Android.

Get rewarded.
Certificate of completion.


Section 1: Get Up and Running
Course Introduction

If you're using a Mac computer, we'll install all the tools you need to start coding: Xcode, iTerm, Homebrew, Git, RVM, Ruby, Rails, and Sublime Text 2. It's a little tedious, but you'll only need to do it once (per computer).


If you're using a Windows or other non-Mac computer, we'll install all the tools you need to start coding: Ruby, Rails, Git, and Sublime Text 2. It's a little tedious, but you'll only need to do it once (per computer).

Section 2: Create Our Website
Create a New App
Add Our First Pages
Add Links
Add Listings
Section 3: Add Front-end Design
Install Bootstrap
Add a Navigation Bar
Simplify Our Code
Build Beautiful Forms
Section 4: Update Listings With Images
Install Paperclip and ImageMagick
Set Up Paperclip
Design Page Layouts
Add Custom CSS
Section 5: Save and Deploy
Set up GitHub
Commit Our Code to GitHub
Deploy on Heroku
Section 6: Host Images Online
Set Up Dropbox
Protect Our Account Data
Configure Dropbox Settings
Section 7: Add Users
Install Devise
Insert Conditional Links
Customize Devise Forms and Alerts
Add Names to Users
Validate User and Listing Data
Section 8: Connect Users to Listings
Associate Listings With Users
Set User Permissions
Create a Seller Page
Redesign the Seller Page
Create a Homepage Banner
Section 9: Place Orders
Link Orders, Listings, Users - Part 1
Link Orders, Listings, Users - Part 2
Create Order History Pages
Reorganize Order Links and URLs
Section 10: Accept Payments
Set Up Stripe
Add Credit Card Fields
Verify Credit Card Data
Charge Credit Cards
Section 11: Transfer Payments
Collect Bank Account Info
Verify Bank Account Info
Transfer Funds
Course Summary

Students Who Viewed This Course Also Viewed

  • Loading
  • Loading
  • Loading

Instructor Biography

Alex Yang, Hacker and Instructor at BaseRails

Alex graduated from Harvard with a degree in Applied Math and spent two years at the Boston Consulting Group in New York.

He was always interested in the tech space and eventually decided to quit his job to become an entrepreneur. He taught himself to code to prototype his business ideas, but the process of wading through coding exercises, one-off videos, and programming books was slow and ineffective.

He created this course to save others the time and hassle he went through when learning to build web apps. Currently, he works on BaseRails and develops curriculum for Codecademy to teach little kids how to program.

Ready to start learning?
Take This Course

How Ruby Met Rails

The Rails logo

Yukihiro Matsumoto invented the Ruby programming language in 1995. Matsumoto, better known to the programming community as "Matz," he had the idea for Ruby back in 1993 as a language that would "make programmers happy."

Matz's vision was for a "genuine object-oriented, easy-to-use scripting language." But he also wanted the language he made to be fun and enjoyable to program in. The programmer, and his or her humanity, was every bit as important as Ruby's more technical features. Matz has said:

"Often people, especially computer engineers, focus on the machines. They think, ‘By doing this, the machine will run fast.' [...] But in fact we need to focus on humans, on how humans care about doing programming or operating the application of the machines. We are the masters. They are the slaves."

Ruby's syntax is flexible, but ambiguity is rare. The language is dynamically typed. Once the code was open-sourced it started to collect some playful quirks, on top of its original elegance. The Ruby string class, for instance, knows that if you refer to "octopi" you're invoking the plural of "octopus." Another example: you can refer to the second item in an array both as "ArrayName[1]", and as "ArrayName.second."

By 2000, Ruby programmers were starting to gain steam as a quirky, friendly community of developers who patched in even more playful idiosyncrasies. But then something happened, which made quirky little Ruby one of the most-used programming languages in the world, and changed the face of the web, and web development, forever.

How David Met Jason

David Heinemeier Hansson

Enter David Heinemeier Hansson. In 2001, the 22-year-old Danish engineer started contracting with a Chicago-based web design firm called 37signals. Initially, his arrangement with the company was very, very informal:

"I was working from Copenhagen, Denmark making $15 an hour that was actually being paid out in Apple hardware at the time because getting money back and forth was a little bit of a challenge. [So they] would just send me like an iPod or like a Mac book [...] something like that."

37signals wasn't just any web design firm. Its founder, Jason Fried was a bit of a thought leader in the world of software. His blog, Signal vs. Noise, had a dedicated readership of designers and developers, and later became 37signal's company blog.

Fried approached web design with more philosophical zeal than the average designer. In 1999, he had launched 37signals not as a company, but as a manifesto. The manifesto had 37 points, many of which railed against things he saw as wrong with the software world. The title was a reference to the 37 unidentifiable signals the SETI program had picked up in 1988.

Among the points made in the manifesto were:

"The Web should empower, not frustrate."

"[C]orporations don't use web sites, people do. B2whatever, we'll design a site that works for the person on the other end."

"You don't need a pen that's also a parachute, you need a website that works for the people who use it."

As Fried has since noted, "In 1999 everyone else was elbowing for the loudest, brightest, most colorful, techiest ‘full service end-to-end' site. We went the opposite direction."

Jason Fried (Ed Schipul)

This philosophy attracted a following. It also appeared to be a very successful approach to web design. Armed with "clean, fast, usable designs," a tiny crack team, and pseudo-celebrity status, 37signals did very well.

After a few years of coordinating four in-house employees with contractors like Hansson, Fried felt the need for a project management tool: to keep track of all the different parts of a project, and whose hands they were in, and to communicate all of this to clients. According to Fried:

"We tried some off-the-shelf and open source blog tools, but they just weren't right for what we had in mind. We looked at some of the other tools out there, but they all seemed to be built for bigger "small" companies. We're four people--and passionate about usability and simplicity--and we didn't find anything that really spoke to us. Nothing excited us. Everything was more, more, more instead of less, less, less."

Eventually, they decided to build something themselves. And Fried asked David Heinemeier Hansson -- who was still in Denmark, but whose work had impressed Fried over the years -- to be the lead engineer. Hansson was excited to work on the project, but he wanted to develop in the still relatively obscure scripting language called Ruby. Quote Fried:

"I had some natural hesitation about using Ruby at first ("What the #@!* is Ruby?" "Why don't we just use PHP--it served us well before?"), but [David], cogently made the case and I bought it."

"I'm a designer and a business guy, not a developer," Fried has said, explaining the decision. "I'm not going to push PHP or Java or whatever just because I've heard of it. If you don't trust your developer to choose the right environment, then how can you trust him to build the best application? Trust is critical here."

Investing In What You Know and What You Need

It turns out that Fried made the right call trusting Hansson. The project management tool became Basecamp, now the company's flagship product (they've even renamed themselves after it). And in the decade to come large parts of the web would be rewritten, and new parts built, with Ruby.

Ruby's human-centered approach fit right into 37signals' design philosophy. But Fried's status as a non-developer might have protected him from some slightly scary details about Hansson's plan -- mainly that Ruby was not yet a web development language, and had a long way to come.

Websites would still be made of HTML and CSS, so in order for Ruby to make sense as an efficient tool for web development, Ruby code had to fit into a framework to coordinate with these things. And Hansson and 37signals devised an elegant one. They adopted a "model-view-controller" architectural pattern to keep the different functions of a website, and the files in languages suited to these functions, separate. They also integrated technology like AJAX into their system, which made designing websites with complicated back-ends much easier, and made them easier to scale.

Hansson built features into the framework as he needed them, and as they worked for the Basecamp team. In 2004, 37signals extracted this framework and published it as open source. Thus, Ruby on Rails was born.

"When we built Basecamp we didn't know we were building Rails at the same time," Fried has said, "but that's exactly how it happened. [...] Basecamp was the divine chicken, Rails was the egg."

The Rise of Rails

Job Listings for Ruby developers from

The rest is history. Starting in about 2006, the demand for Ruby developers skyrocketed. But even at the beginning of this trend, the combined success and impact of Basecamp and Ruby on Rails had made Fried and Hansson "demigods." Hansson in particular was dubbed, "The Hottest Hacker on Earth," by WIRED magazine, and recognized as "Hacker of the Year" by O'Reilly and Google. From an article in WIRED:

"As Hansson took the stage at the British Columbia Institute of Technology for this, the first Ruby on Rails conference, the room was filled with the kind of giddy excitement that greets the opening chords of a Hannah Montana concert."

Like Linus Torvalds to Linux, Guido Van Rossum to Python, Hansson is to Ruby on Rails. And Ruby itself became one of the essential languages of the web -- Rails had propelled Ruby from fringe obscurity to ubiquity. Twitter, AirBnb, SoundCloud, GroupOn, Hulu and GitHub were all built in Ruby on Rails.

But whether Ruby was ever the only language that could have built these apps is up for grabs. The language's technical features are important, Hansson says, but not actually what make Ruby his language of choice.

As he told the crowd at RubyConf 2010, the idea of there being a "best tool" for the job, "has the pretext of being objective." And, for Hansson, it's not about objectivity. It's about pleasure.

"Ruby fits my brain like a glove [...] There's something about the aesthetic of how Ruby lays out on the screen that is intensely joyful."