🚀 New Tutorial: Using Rails Session Cookies for API Authentication
Ruby on Rails: Level II
Advance to the next level of Ruby on Rails by learning advanced design techniques, tips, and tricks using Rails 5.
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 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
“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
Learn the Pragmatic Way
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:
Manage Users 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
Custom Routes 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!
- 1. Introduction and Setup
- 2. User Accounts: Model
- 3. User Accounts: UI
- 4. Sign In
- 5. Sign Out
- 6. Authorization
- 7. Admin Users
- 8. Many-to-Many Associations
- 9. Through Associations
- 10. Many-to-Many with Checkboxes
- 11. Actions-Specific Layout Content
- 12. Scopes
- 13. Custom Routes
- 14. Friendly URLs
- 15. Wrap Up
For Beginner To Intermediate Rails Developers
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.
Also On This Path...
Meet Mike & Nicole
Hey, there! Mike here. I helped build and launch one of the first production Rails apps way back in 2005. I've built countless Rails apps since then, and I continue to develop the Rails apps that power our online business. I co-taught the first official Rails course in 2006 and have had the pleasure of teaching Rails to thousands of developers since then. I'm also the author of Advanced Rails Recipes, co-author of Agile Web Development with Rails, and author of Pragmatic Project Automation.
Together Nicole and I own and run The Pragmatic Studio. We'd love to have you join us in the Studio for this great course! Learn more about us…
Become more confident with advanced Rails techniques!
“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