Turbolinks makes navigating your web application faster. Get the performance benefits of a single-page application without the added complexity of a client-side JavaScript framework. Use HTML to render your views on the server side and link to pages as us...

SimpleMDE is a great WYSIWYG Markdown Editor, but lacks the ability to handle image uploads. In this episode, we look at adding ActiveStorage and some JavaScript to handle image uploading. https://www.driftingruby.com/episodes/simplemde-and-activestorage...

In this episode, we take a look at the Encrypted Credentials of Ruby on Rails 5.2 and how we can patch it so that we can use other YAML files like a development.yml and test.yml. https://www.driftingruby.com/episodes/encrypted-credentials-in-rails-5-2...

In this episode, we take a look at our GraphQL API that we created from Episode 119 and refactor the mutations and queries so that we keep the structure and API manageable. https://www.driftingruby.com/episodes/more-on-graphql-organizing-and-refactoring...

In this episode, we look at creating ruby objects. Then we look at different ways of implementing memoization and how it can be used to speed up our classes. https://www.driftingruby.com/episodes/ruby-objects-and-memoization...

GraphQL is a query language for your API. In this episode, we will look at adding GraphQL to our Ruby on Rails application and seeing how we can pull down data and create records. https://www.driftingruby.com/episodes/introduction-to-graphql...

In this episode, we will go through some of the tips and tricks that we often take for granted. We will be looking at nested routes, scopes, migrations and more. https://www.driftingruby.com/episodes/ruby-on-rails-tips-and-tricks...

In this episode, we look at updating a Ruby on Rails application from v4.2.10 to v5.0.6. The overall steps taken will vary from every application, but the concepts applied will relatively be the same. https://www.driftingruby.com/episodes/upgrading-ruby-o...

Continuing from Episode 114 and 115, we look into adding listeners to Stripe's webhooks for tracking events occurring with customers, subscriptions and charges. https://www.driftingruby.com/episodes/more-on-stripe-and-webhooks...

In our previous episode, we looked at setting up our application to create Stripe Subscriptions. In this episode, we will look at managing the Subscriptions and working with cancelling and resubscribing to a subscription. https://www.driftingruby.com/epis...

Learn how to add a merchant services to your Ruby on Rails application in the first part of this series. We will be looking at adding a subscription service using Stripe Elements. https://www.driftingruby.com/episodes/payment-gateway-basics-with-stripe/ed...

Upcoming features include ActiveStorage, built-in Redis Cache Store, updated Rails Credentials and a bunch of other cool things! Honorable mentions also to the new Stimulus Javascript Framework. https://www.driftingruby.com/episodes/ruby-on-rails-5-2-0-ch...

Used at Basecamp for some time, and recently open sourced to the public, Stimulus is a small Javascript Framework used to manipulate existing DOM elements on the page. This episode, we will dive into interacting with Stimulus and setting it up in a new Ru...

In this episode, we look at ActiveStorage, which is the new file uploading interface in Rails 5.2, and how we can accomplish direct uploads to cloud storage, retrieving & displaying uploaded content, and showing progression with progress bars. https://www...

Continuing from the previous episode, we look at React's state changes and how to interact with the Rails application. We can get the native app feel, without using Rails Unobtrusive Javascript or Turbolinks. https://www.driftingruby.com/episodes/react-st...

In this episode, we look at one of many different ways to add the Javascript Framework, React, into our Ruby on Rails application. This tutorial covers adding react into the application and pulling and displaying database information in nested React compo...

Sentry is an Open Source error tracking that helps developers monitor and fix crashes in real time. Learn how to add and configure Sentry to your application. https://www.driftingruby.com/episodes/tracking-errors-with-sentry...

We’re going to get a Ruby on Rails application running on a staging environment on AWS Elastic Beanstalk. The Rails app will be connected to a MySQL database instance. https://www.driftingruby.com/episodes/deploying-to-aws-elastic-beanstalk...

Slow tests can slow down your development process. Using parallel_tests, you can speed up your test suite by multiple threads and running the tests in groups. https://www.driftingruby.com/episodes/speeding-up-tests...

Factory Bot is a fixtures replacement which can generate the needed records directly in the tests. Faker can be used to create fake data for these records. https://www.driftingruby.com/episodes/sample-data-with-factory-bot-and-faker...

Create Acceptance Tests or Feature Tests to extend your automated tests with browser testing. It can help tests some areas that cannot be reached with other types of tests. https://www.driftingruby.com/episodes/feature-testing-with-capybara...

Using the Rails 5.1.X defaults, we have a look at what is configured and explore the different types of tests; using the provided MiniTest and Capybara. https://www.driftingruby.com/episodes/basic-testing-introduction-in-rails...

Gems are a packaged library of functions that can extend your application or provide other features to your system. Learn to create and publish a ruby gem. https://www.driftingruby.com/episodes/creating-a-basic-gem...

Learn to use custom error pages to provide a similar look to your application. Get notified on Slack as errors occur to act on them before they're reported. https://www.driftingruby.com/episodes/custom-error-pages-with-slack-notification...

In a recent blog post, we looked into the content_for view helper to render breadcrumbs. Once we got the feature working, it's time to refactor the feature to lower technical debt. https://www.driftingruby.com/episodes/benchmarking-and-refactoring-the-co...

Simplify your workflow by using custom generators to streamline the creation of files and templates that you use often. https://www.driftingruby.com/episodes/creating-custom-ruby-on-rails-generators...

Continuing from Episode #87, we take a deeper dive into virtual columns in Rails 5.1 and use them to parse JSON Data Types with adding indexes to the virtual column. https://www.driftingruby.com/episodes/virtual-columns-with-json-data-types...

In Ruby on Rails 5.1.0, generated virtual column support was added for MySQL and MariaDB. Using generated and stored columns can leverage heavy calculations to the SQL side. https://www.driftingruby.com/episodes/virtual-columns-in-mysql...

Working with an autocomplete can be very simple. However, things get complicated when you try to use HTML markup in the displayed results. Learn how to use HTML markup within your autocomplete results! https://www.driftingruby.com/episodes/autocomplete-wi...

The DataTables Javascript library creates a powerful display of your application's data. Some of the features include pagination, server side processing, sorting and search. https://www.driftingruby.com/episodes/datatables...

Using Bootstrap in your application has become much more simple. Also learn to create some helper methods to make working with Bootstrap much easier. https://www.driftingruby.com/episodes/bootstrap-framework-and-ruby-on-rails...

The routes file can grow to be unmaintainable and messy. Learn to keep things organized by extracting out blocks of routes into their own files. https://www.driftingruby.com/episodes/routing-partials...

Mountable Engines are a great way to extract code into its own namespace and allow the code to be reused in other applications. Other popular gems that are mountable engines are Devise and Doorkeeper. https://www.driftingruby.com/episodes/rails-engines...

When displaying a count of records, this will generate extra SQL Queries. Learn how to reduce the number of SQL queries called with counter caching the number of associated records. https://www.driftingruby.com/episodes/counter-cache-associations...