ROR Resources

odinLearn 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