how to build a complete, real-world application from scratch with Ruby on Rails step by step.
A lot of Ruby code is "magic". We'll explain the magic and see how it works using the powerful tools Ruby gives us.
Accept subscription and one-time payments with Stripe in your Rails apps
Expert advice on keeping Rails apps organized and fast.
Cheap, easy hosting for Ruby and Rails apps.
Launch your product business way faster with our SaaS template.
A weekly podcast on web development and building products with Ruby, Rails, Javascript, and more.
Build a Ruby on Rails app in 48 hours with us.
Help Junior developers get hired by sharing small projects to build their resume with paid work.
Find your next Ruby on Rails Job.
Webpack bundles can be confusing as to what actually ships in production. Using the bundle analyzer plugin, we can visualize and see exactly what libraries and files are taking up what space.
Contribute to Rails by discovering something you could improve and learning how to add features to Rails
Rails 6.1 introduces a new feature called "disallowed_warnings" which causes exceptions to be thrown anytime deprecated code is run. This makes it really easy to track down deprecations in your code and fix them quickly.
In this episode, we'll walk through how I discovered an improvement for Rails' new Request.js library and how we approached and implemented the feature in a pull request.
Learn how to use system tests for file uploads with file input fields and drag & drop with Uppy and Dropzone
Ever gotten an InvalidAuthentictyToken error in Rails and wondered how CSRF works? In this lesson, we'll learn how it works behind the scenes so you can understand exactly what's going on.
Ever needed to modify the HTML that ActionText renders? We can override the ActionText::Content class to modify the way HTML formatting works to customize the output. For example, we can add rel="noopener nofollow" to any anchor tags in the content.
hCaptcha is a method to try detecting bots on your website. This episode, we'll walk through how to implement hCaptcha in a way that's compatible with Turbo using Stimulus.js and
Learn how to add a custom Rack middleware to Rails apps with a gem and Railtie. We'll build a simple Rack middleware that intercepts requests to make your app only work during business hours.
If you're building something with shared functionality, extracting a base class can be helpful to create a shared place each class can inherit from. We'll explore how to do this for our API clients and one of the tricky things about accessing constants.
We take the Leaderboard gem and wire it up with custom code to work seamlessly with will_paginate
Errors can come up in many different ways. This episode, we'll look at how we can improve error handling in the noticed gem to cleanly handle issues with ActiveRecord without negatively affecting
Testing file uploads can be tricky, but Shrine makes both file uploading and testing a lot easier than you might expect.
Testing your Meilisearch integration in Rails can be a little tricky. This episode, we'll talk through how to setup Meilisearch in your test suite to index fixtures and more.
Rails 7 changed the way ActionText attachments work, so we'll be writing a Rake task to walk through each of the embeds and update them with the correct Signed GlobalID.
This episode walks through my debugging process to fix a bug with custom webhooks in Pay. It's a very minor change but leads to a big improvement in the usability of our application code.
ActionText is secure by default, but sometimes you need more control over the sanitization. That's where custom sanitizers and scrubbers come in and we'll learn how to use these.
Rails' ActiveRecord supports virtual generated columns in the database. For example, you can use these for converting numbers like degrees Celsius to Fahrenheit. These columns are saved with the regular table data and allows you to query against them.
Scroll events in Javascript can happen quickly. We want to make sure we don't request the same page multiple times which we can solve easily by introducing a little throttling.
It's important to see that there are unread messages in channels you're not actively viewing. We can use a very simple event in ActionCable to do this and bold channel names with unread messages.
Join 79,047+ developers who get early access to new tutorials, screencasts, articles, and more.
We care about the protection of your data. Read our Privacy Policy.
Screencast tutorials to help you learn Ruby on Rails, Javascript, Hotwire, Turbo, Stimulus.js, PostgreSQL, MySQL, Ubuntu, and more.
© 2023 GoRails, LLC. All rights reserved.