Learn Ruby on Rails – The Odin Project
(http://www.theodinproject.com/ruby-on-rails)
In this course, you’ll be doing a whole lot of building, each project a bit more advanced than the previous one. You’ll build about a dozen Rails projects from scratch, including one full-featured tutorial that we’ll be following along with as we go and a full scale web application of your own. More importantly, you’ll learn how to deconstruct a website into its underlying data architecture and then build an application around that. By the end of it all, you’ll have the confidence to put up a simple website in under an hour.
Introduction to Rails
In this section, we’ll dive right into Rails and get you building from the start so you have an idea of what (and how) you’ll learn going forward. We’ll get your feet planted in the right spot and your head pointed the right direction.
Step 1:
How this Course Will Work
Let’s get acquainted with what this will look like from here on out.
Project:
Getting Your Feet Wet
This will give you the chance to build a full Rails app using some of the special tools Rails provides.
Step 2:
A Railsy Web Refresher
We’re not just using the Web, we’re living it. This lesson will get you up to speed on how.
Step 3:
Deployment
There’s nothing quite like seeing your application on a real website. We’ll show you how it’s done.
Project:
Let’s Get Building
In this project, you’ll get started with the core tutorial we’ll be following throughout this course.
Routes, Views, Controllers and Assets
Now that you’ve gotten your feet wet, it’s time to start looking carefully into the foundational pieces of the Rails framework. We’ll cover the path of an HTTP request from entering your application to returning as an HTML page to the browser.
Step 1:
Routing
The router is the switchboard of your app, telling requests which controller action they’re supposed to run.
Step 2:
Controllers
Controllers are the middle managers of the whole process — they tell everyone else what to do and take all the credit.
Step 3:
Views
When the controller has figured out which data needs to be displayed, it’s the View’s job to turn that into some half-decent HTML.
Step 4:
The Asset Pipeline
This lesson explains how Rails handles all the behind-the-scenes stuff to get your CSS, Javascript and Image files served quickly and efficiently and how you can use that process.
Project:
Basic Routes, Views and Controllers
You’ll get to play with routing and build what you’ve learned in this section so far.
Databases and Active Record
This section covers the back end of Rails, which is the most important part of the framework. You’ll learn about databases and go deep into SQL before applying that knowledge to Rails’ fantastic Active Record gem.
Step 1:
Databases and SQL
Data is the core of every major web app and here you’ll learn how to speak SQL.
Project:
SQL
The best way to learn is by practice, so this project will give you plenty of opportunity to apply your new SQL powers (for good).
Step 2:
Active Record Basics
Active Record is the crown jewel of Rails because it turns all the bare metal database queries (like SQL) into nice clean Ruby methods.
Project:
Building With Active Record
You’ll start getting practice thinking data first before building something that acts a lot like Reddit.
Forms and Authentication
This section gets into some of the areas of web apps that are less glamorous than they are important. Forms are your user’s window to interact with your application. Authentication is critical for many applications, and you’ll build a couple of auth systems from the ground up.
Step 1:
Form Basics
Half refresher, half expanding your mind, this will bridge the gap between the lowly web form and your server side logic.
Project:
Forms
To understand the form, you must start from the beginning. We’ll start with HTML and then learn how Rails can really help you out.
Step 2:
Sessions, Cookies, and Authentication
Learn how to store data in the user’s browser and how that is used to sign in the user and keep them signed in across requests.
Project:
Authentication
You’ll build a closed community for sharing embarrassing gossip with the world.
Advanced Forms and Active Record
Now it’s starting to get fun! Learn how to do more than just find and show your users… you’ll learn how to use relationships between models to greatly expand your abilities and how to build web forms with sufficient firepower to achieve your most ambitious goals.
Step 1:
Active Record Queries
Learn how to take some of those advanced querying concepts you used in SQL and have Rails do them for you mathemagically.
Step 2:
Active Record Associations
Dive into some of the more interesting features of associations like special methods and polymorphism.
Project:
Associations
Build a system to manage signups for you and your friends’ special events.
Step 3:
Active Record Callbacks
A brief look at the life-cycle of an Active Record object, from birth to destruction, and how you can hook into that for profit.
Project:
Advanced Associations
Exercise those association muscles to finish up the tutorial like a pro.
Step 4:
Advanced Forms
Take what you know about forms and put rocket boosters on it. Don’t be afraid to make a form for anything.
Project:
Building Advanced Forms
Build an airline flight signup system, which is a nest of interesting complexities
APIs, Mailers and Advanced Topics
This final section will take you into some of the more interesting sides of the Rails ecosystem which will help you reach beyond your own app and into the lives of your users via email or harness the powers of other apps via their APIs.
Step 1:
APIs and Building Your Own
Rails is really just an API itself… learn about APIs and how to turn your app into one
Step 2:
Working With External APIs
Lots of the power of APIs comes from interfacing with third-party applications, which we’ll cover in this lesson.
Project:
APIs
In this project, you’ll both build your own API and work with a third-party API.
Step 3:
Mailers
You don’t often think about where your email comes from. Here you’ll learn how to send it from your app.
Project:
Sending Confirmation Emails
Add email functionality to an existing project. Just don’t SPAM, it’s frowned upon.
Step 4:
Advanced Topics
A mash-up of orphan topics like advanced routing, layouts, metaprogramming and design patterns.
Project:
Final Project
There’s a pretty popular social networking app you should build. They may have made a movie about it.
Step 5:
Conclusion