Ruby on Rails: Level II
Hands-On Video Course
Advance to the next level of Rails by learning more advanced, pro-level techniques using Rails 5.
You'll learn how to design some of the more advanced Rails features you've seen in sophisticated apps including user accounts, authentication and authorization, many-to-many and through associations, custom routes, and other pro-level design facets using Rails 5.
“This is the best Rails training hands-down! I've worked through several Rails courses and they don't even come close to explaining things as well as you do.” —Thomas Neal
“I know after completing your Rails I and II courses that I can build pretty much whatever I want in Rails. These two courses are far and away the best value-for-money Rails courses out there.” — Jonathan Mundy
“I've taken other Rails tutorials but yours really filled in the gaps in my understandings!” — John Weir
Take your Rails apps to the next level and master your Rails skills!
If you took our popular first Rails course, or you're already comfortable with the topics taught in that course, then you're ready to advance to the next level and take your skills up a notch in this follow-on course.
Step-By-Step, Project-Based Approach
Videos, Exercises, Hands-on Projects. In our popular online format you'll learn through a unique mix of watching, coding, reading, and experimenting.
20 Engaging Videos: HD-Quality and DRM-free
The videos are a combination of guided instruction, live-coding, discussions, and animated visuals to deepen your understanding. To get a feel for the video format, watch the first few videos. The total video duration is 4 hours divided into 10-20 minute increments. Watch them when and where it's convenient for you. All the videos are licensed for individual use, downloadable, DRM-free, and available in full 1280x720 HD resolution.
Hands-On Exercise Workbook (19 Chapters))
Each video has a corresponding chapter in an online workbook where you apply what you learned in the video through a series of exercises completed on your own computer. Check out the exercise format by working through the first few exercises. Of course all the solutions are provided and the workbook content is easily searchable, so you always have a reference library at your fingertips!
Helpful Support Mailing List
Post questions, get answers, share insights, discuss Rails topics, and connect with other students who are pursuing similar goals.
Well-Designed Source Code for Two Rails Apps
To fully engage your brain and cement the concepts, you'll apply what you learned in the video to a slightly different app in the workbook. Students tell us this is one of the best parts of our courses! Not only it is more fun and interesting, you'll also have two full-featured Rails apps to draw from at the end of the course.
Instant and Perpetual Access
Your access never expires! There is no time limit to complete the course, and you can revisit all the material whenever you want. It's the perfect environment for learning at your own pace, and on your own time.
Personalized Proof of Completion
When you've completed the course, you can easily showcase your accomplishment by sharing the link to your personal alumni page.
Money-Saving Alumni Status and Discount
After purchasing your first online course, you immediately become a Pragmatic Studio alumni and get 25% off all subsequent Ruby and Rails courses!
“The fantastic diagrams, the outstanding explanations, and the exercises helped me fully understand the subject.”
Level Up And Advance Your App
Dive deep into aspects common across most full-featured Rails apps. This course takes a very pragmatic, project-based approach as we look in-depth at the following areas:
Whether you choose to build your own user account management system or use a gem, it's critical to know how everything fits together. Managing your users' accounts isn't an area of your app that should be a black box. By learning how to design a solid user model and web interface from scratch, you'll be in a better position to adapt, customize, leverage, and troubleshoot either your own code or a third-party gem. We'll start off by looking at how to:
- Design a solid user model (free video & exercise)
- Securely store passwords with the bcrypt gem
- Declare reasonable validations in the User model
- Create new user accounts with a sign-up form
- Display users' profile pages
- Allow a user to edit or delete their account
Authentication & Session Management
You sign in and out of web apps every day. It's so routine that it's easy to take account management features for granted. But the reality is there's a lot going on behind the scenes. Implementing account management properly in an app requires a solid understanding of sessions, cookies, filters, security concerns, and Rails conventions for authentication and authorization. We'll break it all down and look in-depth at how to:
- Add routes for a singular session resource
- Design a SessionsController to manage the session resource
- Create a sign-in form using form helpers
- Sign in (authenticate) users and remember them with sessions
- Automatically sign in a user when they create an account
- Sign out users
Authorization & Admin Users
Exactly who gets to take certain actions and do certain things in your app? What can signed-in users do? What can't they do? What can admin users do? Authorization rules tend to vary widely depending on the nature of a specific application. The good news is once you understand the basic technique, you can easily design an authorization system that works for your custom needs. You'll learn how to:
- Use before_action filters to restrict access to specific actions
- Restrict access based on signed-in status
- Redirect a user back to his intended URL after he has signed in
- Hide unauthorized features
- Allow special "admin" users to perform admin-only tasks
Many-to-Many & Through Associations (6 Examples)
In the Rails Level I course, you learned how to connect models using one-to-many associations. More sophisticated apps also have many-to-many associations between models. For example, if you're building a movie review app, a user could have many favorite movies. And conversely, a movie will have many fans. Because these sorts of associations are so common, Rails has powerful conventions to help you manage them.
But the conventions alone only take you so far. It's up to you to model the associations with the full stack in mind: from the database tables all the way through to the user interface. And the best way to learn how to do that is seeing lots of good examples. So by way of six distinct examples (three in the videos and three in the exercises), you'll learn how to:
- Design a rich many-to-many association that connects a user to their movie reviews using a join model and a form
- Model a many-to-many association that lets a user "fave" multiple movies with a button
- Create a through association for assigning multiple genres to a movie using checkboxes
- Traverse the associations to list the movies a user has reviewed and faved, for example
- Improve the performance of database queries
- Name associations to better express your domain
URLs are the user interface of the web. We tweet and email them. We bookmark pages we want to return to later. We use embedded links to connect across web apps. As part of your app's user interface, it's critical that your URLs are both expressive and friendly. The default resource URLs are a good start, but the Rails router gives us a lot of flexibility when it comes to customizing URLs. And well-designed URLs might also end up driving more search traffic to your site! You'll learn how to:
- Generate friendly URLs for better SEO, bookmarking, and curb appeal
- Customize routes to handle scenarios beyond the basic resource routes
- Use route parameters and constraints
Best Practices and Techniques
As always, throughout the course you'll learn how to write good, clean code that follows tried-and-true practices used by veteran Rails developers, including how to:
- Write composable queries in a declarative style using scopes and Ruby lambdas (free video & exercise)
- Use Active Record callbacks properly to run code at specific points in a model's lifecycle
- Display action-specific, dynamic content in a layout
- Remove code duplication and improve code clarity
You'll also pick up tips, tricks, and other pro-level techniques to cut down development time and get the most out of Rails!
“The Rails I and II courses have been so incredibly helpful! I've learned a lot. The videos on every topic were information packed with wonderful details. I was super pleased with the in-depth explanations and illustrations for model relationships, particularly many-to-many. I knew the Rails II course would be as great as the first, and I was not disappointed. In fact, it's better than I expected!” — Dana Nourie
Broaden Your Skills
Move beyond the skills of the average Rails developer. This course will be a good fit for you if:
- You've taken our introductory online Rails I course or you're familiar with the topics taught in that course.
- You're comfortable writing Ruby code. If you're feeling a bit rusty, we strongly recommend taking our online Ruby Programming course prior to this course.
Build a Rails App You Can Be Proud Of
All you need is your favorite coffee mug, comfy slippers, and the following additional necessities of any programmer:
Mac, Windows, or Linux Computer
Rails runs great in all these environments, so any computer you're comfortable using will do. We'll help you get everything installed on your system so you'll learn in the same environment where you'll actually write your own Rails apps.
Up-to-date Web Browser
We designed the online experience to take advantage of some of the latest web standards, so you'll need the latest version of Safari, Chrome, Firefox, or IE 8 (or higher).
The videos in this course can be watched either in your browser (in which case you'll need a reasonably fast 'net connection) or you can download them to your computer and watch them offline. The workbook and exercises are only available online.
“I learned a ton in this course that I didn't learn from other sources online. I was immediately able to start putting together an application that has been stuck in my head for a long time.” — Wassim Metallaoui
We'll Help You Become A Better All-Around Rails Developer
Mike and Nicole Clark run The Pragmatic Studio, an acclaimed source of software developer training. Over the last nine years, we've helped over 2,500 developers improve their craft through public, private, and online courses. In this course, we hope to help more folks in their pursuit to build web apps for their company, club or organization, or hobby turned exciting new venture.
Mike has over 20 years of software development experience. He helped build one of the first production Rails apps way back in 2005, lead the initial development of the Pragmatic Bookshelf site, and continues to develop the Rails apps that power our online training business. He's also the author of Advanced Rails Recipes, co-author of Agile Web Development with Rails, and author of Pragmatic Project Automation.
“I'm pretty pumped with all the stuff I've learnt. After completing this and the previous Rails course, I'm pretty sure I now have everything I need to develop almost anything thrown my way.”
Become more confident with advanced Rails techniques!