Pinned Repositories
029-infinite-scrolling
Infinite scrolling is now a common feature and there are several cases where it is really useful. For instance there are some websites where we simply can’t imagine a good pagination system, like Twitter or even Facebook.
042-fullcalendar
Learn how to incorporate FullCalendar into your Ruby on Rails application with listing and creating events. Using unobtrusive javascript, we can create a fast interactive calendar.
046-two-factor-authentication
Add multi factor authentication to your existing authentication solution. This gives your users the option to increase the level of security to their account and help prevent unauthorized access.
051-rails-api-authentication-with-jwt
Using the knock gem, we will add JWT Authentication to our Rails API Application.
070-nested-forms-from-scratch
Learn how to handle multiple models in a single form with accepts_nested_attributes_for and learn how to add and remove nested records through JavaScript.
154-service-objects-for-api-interactions-with-twilio
In this episode, learn how to extract the interactions with an external API into a service object so that code is isolated and interchangeable.
186-nested-forms-from-scratch-with-stimulusjs
Using StimulusJS controllers, adding nested forms to a Rails application is easy and unobtrusive. In this episode, we look at an alternative way of creating nested forms without the Cocoon gem.
275-hotwire
Hotwire is the newest magic which takes a different approach to building modern web applications without using much JavaScript.
294-building-a-questionnaire
Using StimulusJS and nested forms, we create the first parts of a questionnaire. Dynamic surveys can be difficult to architect and maintain. In this episode, we take a simple approach to creating questionnaires.
template
Base template for "all" Drifting Ruby episodes
Drifting Ruby's Repositories
driftingruby/051-rails-api-authentication-with-jwt
Using the knock gem, we will add JWT Authentication to our Rails API Application.
driftingruby/029-infinite-scrolling
Infinite scrolling is now a common feature and there are several cases where it is really useful. For instance there are some websites where we simply can’t imagine a good pagination system, like Twitter or even Facebook.
driftingruby/067-decoding-and-interacting-with-barcodes
Using the QuaggaJS Library, learn how to scan and decode barcodes with your Ruby on Rails application. Using provided callbacks, interact with controller actions to provide a seamless experience.
driftingruby/033-progressive-render
Slow content got you down? Load it later! Use this gem to defer loading of portions of your page until after load. They will be fetched via AJAX and placed on the page when ready.
driftingruby/041-dry-up-your-javascript
Learn how avoid duplicate code to reuse existing javascript.
driftingruby/027-WYSIWYG-with-Summernote
Integrate Summernote WYSIWYG Editor into your application. Learn how to use AJAX callbacks to filestore your images instead of database Base64.
driftingruby/039-action-cable-part-3-securing-your-websockets
Using authentication and authorization, lock down your ActionCable WebSockets so that messages are only sent and received to the intended users.
driftingruby/005-florrick
This is a Rails library which integrates with Active Records and provides some awesome user-initiated string interpolations for your web apps. For example, have you ever needed to allow users to insert their own variables into e-mail templates or messages?
driftingruby/055-charts-and-graphs
Learn how to use one of three charting libraries, Chart.js, Highcharts, or Google Charts, using the Chartkick gem to create simple and unobtrusive charts in your application.
driftingruby/056-redis
Redis within a Ruby on Rails application has many benefits. Learn to interact with Redis Server and set it up for caching within your application.
driftingruby/057-getting-started-ruby-on-rails-architectural-overview
For beginners, learn the basic structure of a Ruby on Rails application and the request lifecycle. Learn how different components of a Rails application interact with each other.
driftingruby/058-mail-previews-and-templates
Using ActionMailer::Preview preview email samples without sending them. Using Zurb's Foundation for Emails, learn how to use email templates with the Ink framework.
driftingruby/059-background-jobs-with-sidekiq
Sidekiq is a Ruby Background Processor that manages its queue with a Redis service. Learn the basics of Sidekiq and integrating it with ActiveJob.
driftingruby/063-client-side-encryption
Add an extra level of security to your application with client side encryption. Even over an SSL connection, there are attacks which could expose your users' sensitive information. Using JSEncrypt, learn how to encrypt on the client side and decrypt on the server side.
driftingruby/068-working-with-internationalization
Adding translations into your website does not have to be hard. With Rails built in I18N functionality, we gain access to many helpers and conventions that makes it a much easier task. Learn how to add I18N into your Rails application.
driftingruby/076-javascript-select-form-fields-with-chosen
Chosen is a jQuery plugin that makes long, unwieldy select boxes much more user-friendly. Learn how to use Chosen in a few different ways in this episode; Rails form builder and Simple Form.
driftingruby/079-mountable-engines
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.
driftingruby/083-autocomplete-with-html-results
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!
driftingruby/096-auditing-with-paper-trail
Using the paper_trail gem, track changes to model records for auditing purposes and rollback changes when required.
driftingruby/099-creating-a-basic-ruby-gem
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.
driftingruby/108-tracking-errors-with-sentry
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.
driftingruby/006-attr_encrypted
Protecting your data within your database has never been easier. With attr_encrypted, you can easily add a level of security to your application without much refactoring.
driftingruby/008-sending-emails
This episode is a prelude to ActiveJob and background processing. Learn how to send emails using an external mail service with Rails.
driftingruby/011-annotate
With strong params replacing attr_accessible, a difficulty has arisen with referencing to the structure of your models. With annotate, we can generate the structure of our models in the comments of our models.
driftingruby/015-refile-uploads-with-progress-bar
Adding progress bars to your Refile uploader is easy thanks to the included javascript library from Refile. Learn how to add progress bars to your application.
driftingruby/072-intro-to-docker-on-windows
Developing a Ruby on Rails application on Windows can be difficult, but doesn't have to be with Docker. Learn how to use Docker to create isolated containers and get them to talk with the Rails app and passed through to the local computer.
driftingruby/077-cropping-images-with-jcrop
Extend your image upload functionality with JCrop. Learn to redirect the user to a crop page once they have uploaded their image and save versions of the cropped images.
driftingruby/088-virtual-columns-with-json-data-types
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.
driftingruby/097-single-table-inheritance
Learn to use single table inheritance to allow multiple classes to be stored in the same database table.
driftingruby/098-polymorphic-associations
Advancing from Single Table Inheritance, learn how Polymorphic Associations differ and tricks to simplify their usage.