Rapid Prototyping with Ruby on Rails

Summary

This course will guide you through Ruby on Rails, the rapid web application development framework. It'll cover relational databases/sql, what an ORM is, and all the various conventions that makes Rails such a powerful, yet confusing, framework. The focus of this course is not only how to use Rails, but also peeling back the conventions and demystifying "Rails magic". Why do things "just work"? What assumptions are being made, and what architectural decisions are done behind the scenes? After this course, you should have a fundamental grounding of how to use the framework, and be comfortable with building a simple CRUD web application from scratch.

Topics Covered

  • Introduction to relational database
  • Basic database associations: 1:M and M:M
  • ActiveRecord
  • Resourceful routing
  • REST
  • MVC - models, views and controllers
  • Request/reponse processing
  • Partials
  • Helpers
  • Filters
  • Rails forms
  • Validations
  • Strong parameters
  • Callbacks
  • Authentication from scratch
  • Time zones
  • Simple roles
  • Deployment
  • Polymorphic associations
  • Ajax, the Rails way
  • Pretty URLs
  • Building APIs
  • Creating and publishing your first rubygem
  • Rails, demystified

Phase

Frameworks and Integrations

Detailed Syllabus

Code Like a Real Rails Developer

  • Learn to use the terminal, rails console, and code editor
  • Use Git and Github for code versioning
  • Learn to debug using pry, server logs and reading stack traces

Understand "The Rails Way"

  • Convention over configuration
  • Don't repeat yourself
  • Dissecting a Rails application
  • Overview of the main Rails components: routes, controller, ActiveRecord, view templates
  • MVC
  • REST

Persistence and Models

  • Database concepts: relational database, data modeling, associations
  • Migrations for database schema changes
  • Active Record
  • Associations in Rails: has_many, belongs_to
  • Advanced Associations: polymorphic associations
  • Advanced Active Record: the Active Record Query Language
  • Skinny controllers; fat models

Forms

  • Rails form methods: model backed forms vs form tag helpers
  • HTTP in Rails forms
  • Parameter passing
  • REST, resources and forms
  • Validations
  • Strong parameters vs attr_accessible (Rails 4 topic)

Advanced Topics

  • Nested resources: building complex URLs
  • Slugs: pretty URLs for SEO and bookmarking
  • Helpers
  • Partials
  • Authentication & sessions: register a new user, login, logout
  • Deploying your application to Heroku
  • Building and consuming APIs
  • Ajax in Rails
  • Adding time zones
  • Use modules to extract common logic
  • Creating and publishing a gem
  • 2-factor authentication with Twilio
  • Demystifying Rails

Projects

  • Course Project: Build a Reddit clone
  • Review Project: Build a Twitter clone
  • Capstone Project: Build your own Rails app from scratch