Logo Logo white GoRails
Path Series Lessons Forum
Courses
Rails for Beginners

How to build a complete, real-world application from scratch with Ruby on Rails step by step.

Advanced Ruby: Behind the Magic

A lot of Ruby code is "magic". We'll explain the magic and see how it works using the powerful tools Ruby gives us.

Payments with Rails Master Class

Accept subscription and one-time payments with Stripe in your Rails apps

Refactoring Rails

Expert advice on keeping Rails apps organized and fast.

Learn Hotwire

Learn how to build fast, modern web apps with HTML over the wire.

Content
Install and Deploy Rails Guides

Setup your computer with Ruby on Rails and deploy to a production server.

Apps
Hatchbox.io

Cheap, easy hosting for Ruby and Rails apps.

Jumpstart Rails SaaS Template

Launch your product business way faster with our SaaS template.

Other
Remote Ruby Podcast

A weekly podcast on web development and building products with Ruby, Rails, Javascript, and more.

GoRails Open Source

A few of the Open Source projects we do at GoRails.

Rails Hackathon

Build a Ruby on Rails app in 48 hours with us.

Beginner Bounties

Help Junior developers get hired by sharing small projects to build their resume with paid work.

Ruby on Rails Job Board

Find your next Ruby on Rails Job.

Pricing
Log In Sign Up
10m

Preventing Conflicts with Optimistic Locking

Aug 15, 2019 Pro

When things (users, jobs, etc) attempt to update the same record at the same time, we can often lose changes. Optimistic locking uses a lock version number to warn you about updating stale objects so you can handle that safely.

2
10m

Handling First & Last Name with the name_of_person gem

Oct 17, 2018

Deciding whether or not to have separate first and last name fields gets a bit confusing. Basecamp's recently released name_of_person gem shows you exactly how to handle this reliably and also stands as a fantastic example of how to build a concern

4
17m

Autosave Draft Records - Part 1

Jan 23, 2019 Pro

Autosaving draft records allows you to make sure users don't lose their work and can easily write draft content without publishing right away. We'll be using Stimulus to build an autosave controller for our form and Draftsman to power the backend.

5
9m

Pagination with will_paginate

Jul 07, 2014

A look into how pagination works from scratch and how to use will_paginate

13
6m

Keeping track with Annotate

Jul 07, 2014

Learn how to keep track of your database models and attributes with comments in your application

10
20m

Realtime Nested Comments: Part 1

Feb 02, 2021

Hotwire lets us broadcast changes so we can use the same approach for nested comments, but in realtime!

6
22m

Message Templates

Jun 07, 2016

Learn how to use a template model to populate forms and other objects with

5
18m

ActiveSupport Concerns: Making a Soft Deletable module

Feb 12, 2015 Pro

An introduction to Ruby on Rails ActiveSupport concerns where we build a Soft Deletable module like the Paranoia gem

13
20m

Nested Comment Threads in Rails - Part 2

Sep 18, 2018 Pro

Implementing polymorphic, reusable comments across models and limiting the nesting allowed for nested comment threads

5
11m

Debugging Performance Problems In Your Views

May 04, 2015 Pro

Learn how I discovered and solved a performance bug in OneMonth.com's view partial

1
10m

Handle Race Conditions with Pessimistic Locking

Aug 22, 2019 Pro

Race conditions can cause problems with data integrity. We can prevent these issues with Pessimistic Locking in ActiveRecord which uses database row-level locking.

1
14m

Nested Comment Threads in Rails - Part 3

Sep 26, 2018 Pro

Using AJAX, we can submit our comments and have them render onto the page without a page refresh.

13
5m

Tracking online users with timestamps

Feb 03, 2020

We can use timestamps in our database to track of online users in your Rails

2
10m

How to Build Custom ActiveRecord Validations

Sep 20, 2021 Pro

Custom ActiveRecord validations are easy to make and they're implemented exactly the same way as the built-in Rails validations. It's super handy to be able to add nice, clean validations that you can repeat throughout your apps.

5
12m

ActiveRecord Default Scopes, Unscoped, and Unscope

Jun 22, 2021 Pro

ActiveRecord default_scopes are incredibly useful for some features like soft delete. But sometimes we need to undo a scope, so that's where unscope comes in.

4
14m

How to use Multiple Databases in Rails 6.0

Aug 27, 2019

With Rails 6.0, you can now define multiple primary and replica databases, define separate migrations for each primary database, and configure each model to read and write from different databases.

1
17m

Reddit style comment thread pagination

Oct 08, 2018 Pro

Adding pagination to our nested comment threads is easier than you might think, plus we'll take a look at a couple different approaches we can use

8
6m

Deleting Comments In Nested Threads

Oct 02, 2018 Pro

Nested comment threads pose a lot of unique challenges. One of these is deleting comments because you can easily lose the child comments or context. We'll take a look at a couple great ways of handling this.

5
15m

Slug History & Redirecting Old Slugs with FriendlyID

Jan 25, 2021 Pro

Updating slugs

1
15m

Polymorphic Selects in Rails using GlobalIDs

Jun 06, 2022 Pro

Using Signed GlobalIDs, we can create polymorphic select boxes in Rails to easily choose a record of any type. This is also secured by using signed global IDs to prevent tampering by malicious users.

5
<12345>
Filter By
All Episodes Free Episodes Pro Episodes
Sort By
Published Date Popularity
Categories
ActionCable ActionMailbox ActionText ActiveJob ActiveModel ActiveRecord ActiveStorage ActiveSupport Administration APIs Authentication Authorization Background Jobs Basics Caching Code Organization Code Review Comments Complete App Concerns Controllers Credentials CSS CSV Debugging Deployment Design Patterns Development Docker Emails Ember Errors File Uploading Fixtures Forms Frontend Gems Generators Geocoding Helpers Hotwire Internationalization iOS Javascript JavaScript Maps Messaging Metaprogramming Middleware Mobile Models Multitenancy Notifications OAuth Open Source Pagination Payments Performance Production Rack Rails 4.2 Rails 5.0 Rails 5.1 Rails 5.2 Rails 6 Rails 7 Rails 7.1 Rails 7.2 Rails 8 Rails Engines React Native Refactoring Routes Ruby Search Security Servers Sharing SQL Testing Timezones Turbo Turbolinks Upgrading Views VueJS Webhooks Webpacker

Learn Ruby on Rails, Javascript, Hotwire, Turbo, Stimulus.js, PostgreSQL, MySQL, Ubuntu, and more with GoRails tutorials.

Twitter GitHub

Solutions

  • Ruby on Rails Tutorials
  • Rails Learning Path
  • Rails Courses
  • Rails SaaS Template
  • Deploy Ruby on Rails
  • GoRails Open Source
  • Ruby on Rails Tools
  • Ruby on Rails Jobs

Support

  • Pricing
  • Teams
  • Testimonials
  • Help

Company

  • About Us
  • Blog
  • Remote Ruby Podcast

Legal

  • Privacy Policy
  • Terms of Service

© 2026 GoRails, LLC. All rights reserved.

Proudly built with Jumpstart and hosted with Hatchbox and DigitalOcean.