Rails 5: Level II
Take your Rails app and skills to the next level!
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 course 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
“These 2 courses are far and away the best value-for-money Rails courses out there. If I could pick only one beginner and one advanced Rails resource to learn from, it would be your courses. I know after completing your Rails I and II courses that I can build pretty much whatever I want in Rails.” Jonathan Mundy
Design Advanced Rails Application Features From Scratch
Dive deep into aspects common across most full-featured Rails apps.
In this course we follow a step-by-step, 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
- 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
Rails has powerful conventions to help you manage many-to-many associations, 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. 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
- 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, Tricks, and Techniques
As always, throughout the course you'll pick up tips, tricks, and other pro-level techniques to cut down development time and get the most out of Rails!
On average, students complete this course in roughly 16 hours which includes watching the videos and doing all the exercises in the workbook. Download the 20-Day Course Plan and we'll walk you through the course in short sessions day-by-day!
For Beginner To Intermediate Rails Developers
Because you're beyond an introductory course.
If you took our popular Rails Level I course, or you're already comfortable with the topics taught in that course, then you're ready to take your skills up a notch in this follow-on course. We aim for 100% satisfied developers, so if this course turns out not to be a good fit for you, we'll gladly issue you a 100% refund.
Created with 💛 by Mike and Nicole Clark
Hi, we'd be delighted to have you along as we create stuff in the Studio!
We've been using Rails since version 1.0. In fact, Mike helped build and launch one of the first production Rails apps way back in 2005. Since then together we've built countless Rails apps, including the suite of apps that power this site and our custom video training platform. We still write Rails code almost every day, and we love it!
Mike co-taught the first official Rails course in 2006 which lead to us starting this little training company we call The Pragmatic Studio. He's also the author of Advanced Rails Recipes, co-author of Agile Web Development with Rails, and author of Pragmatic Project Automation.
As with all our courses, this is the course we wish we had when learning Rails. One that's easy to jump into, doesn't get bogged down in syntax minutiae, and focuses on building a real Rails app. Nothing is held back: we tackle complex features by breaking down the concepts so everything makes sense. We've literally spent years designing and improving this course in a way that lets you learn everything in around a day. We hope you enjoy it!
Join others taking their Rails skills to the next level!
Here's what some of them have to say…
“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
“I highly recommend Pragmatic Studio's Rails Programming courses! The exercises allow you to build something more complex than a blog and do so by applying what was learned in the lessons rather than merely following along! This format really drove things home for me.” Bart Falzarano
“I've taken other Rails tutorials but yours really filled in the gaps in my understandings!” John Weir
“Thanks to everything I learned with you, I am about to land a new job in which I will be programming in Ruby on Rails. Thank you very much for that!” Miriam Tocino
“This course along with your Ruby Programming and Rails I course offers the best introduction to learning Rails for a beginning developer. I cannot think of any book or video series that does as good a job.” Eric Ricketts
“Everything is great: the material, the teachers, the simple, concise, yet clear explanations in all the courses. I think these are the best Ruby and Rails online courses for people that want to jump into Rails. All of the courses are worth every penny!” Alfian Losari
“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
“The main difference I have found after taking a lot of other Rails courses is that you explain things in greater detail which has helped me understand the 'whys'.” David Theroff