Advanced Rails Training Course

Course Summary

The Advanced Rails training course provides you with skills and knowledge to leverage powerful advanced features of Rails and take your applications to the next level.

Upon completion, you will be able to improve the architecture of your applications and do more with less code. You will understand how to use tests to drive the design of your applications in an Agile fashion, and make it secure. And you will be able to tune your applications for high-traffic scalability.


Duration [top]

3 days.

Objectives [top]

In this course you will learn:

  • How to use git with Rails
  • Rspec and Cucumber
  • Advanced association features, named scope
  • How to write REST-ful applications
  • Performance profiling
  • Scalability & Caching
  • Security
  • Deployment Best Practices

Prerequisites [top]


  • Prior working experience with the Rails stack of 6 months or more
  • Prior programming experience in Ruby
  • Basic understanding of object relationships in Rails
  • Prior knowledge of a revision control system such as git
  • Familiar with how to make simple SQL queries (e.g. SELECT * FROM ... WHERE ...)
  • Basic exposure to Ajax in Rails
  • Familiar using gems and Bundler 

Instructors [top]


Daniel Morrison has been teaching Ruby, Ruby on Rails courses since 2007. Not to mention helping some of the most advanced software teams across the U.S. with consulting projects within the Ruby and Rails space. Daniel brings his industry expertise from these real world projects to the training class. With a background in Computer Science, there's a good chance Daniel will start rambling on about Merge Sorts or Big Oh calculations. If you leave him alone, however, his fascination with code, databases, and APIs will kick in and he'll start programming.

Daniel founded Collective Idea in 2005 to put a name to his growing, and already full-time freelance work. He can usually be found (coffee in hand) staring into a tiny 15" digital world. He writes about code and other uninteresting things on his blog.

More about Daniel Morrison...

Nathaniel Jones has been a web developer for about a decade now, working primarily with Ruby on Rails for the past four years. About a year ago, he founded Third Prestige, a web application studio in Austin, TX, built around the idea that designers and developers work side by side through the entire process to deliver the best possible overall product. Along that line, he's always strived to be a full-stack developer, transforming business logic into database schemas one day and layering in smooth transitions with jQuery or CSS3 the next. He also helped start the course Design for Developers, helping developers understand the principles and logic behind how design works.

He's excited to help mentor developers in best practices and delivering maintainable software, whether that's helping teach with MakerSquare, a 10-week web development bootcamp, or volunteering at Cafe Bedouins, Austin's weekly hacknight, or just pair programming with a junior developer on hard problems.

More about Nathaniel Jones...

Outline [top]

RSpec and Cucumber

  • rspec for model, controller, views, helpers, libs
  • mocks, custom matchers
  • writing cucumber tests

Writing maintainable code

  • Skinny Controller, Fat Model
  • Presenters
  • Interactors

Advanced model & association features

  • understanding association proxy objects
  • working with eager loading
  • scoping
  • using association callbacks
  • adding association extensions
  • inheritance

Performance profiling

  • using tools to profile
  • interpreting the data
  • instrumenting Rials

Scalability & Caching

  • page caching, action caching, fragment caching
  • memcached and plugins
  • using model caching


  • authentication & authorization
  • understanding best practices

Deployment and Operations

  • cloud infrastructure vs application platforms
  • managing an app in production
  • deployment best practices

Working with APIs

  • building a RESTful API
  • consuming third-party APIs

Extending Rails

  • Building a gem
  • Gems vs Plugins vs Engines