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/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.
driftingruby/035-importing-and-exporting-csv-data
Basics on importing and exporting CSV Data using Ruby and without gems.
driftingruby/074-page-specific-javascript-in-ruby-on-rails
Sometimes you may find yourself with an application that has javascript that needs to execute only on a specific page. This episode lays the foundation to easily manage page specific javascript.
driftingruby/094-recurring-events-on-full-calendar
Create recurring events and interact with them on FullCalendar.
driftingruby/010-invisible-captcha
Part of a good User Experience is making your application easy to use for your users. However, a few bad apples often cause a hinderance to your UX/UI by the addition of Captchas. Learn how to create invisible captchas to protect your forms while delivering a good UX.
driftingruby/043-antivirus-uploads-with-clamby
Using ClamAV, scan files uploaded to your application for viruses. In the event of a virus learn how to gracefully handle the infected file and notify the user.
driftingruby/045-authentication-crash-course-with-devise
Devise is a flexible authentication solution for Rails based on Warden. Learn how to add a stable authentication solution like Devise to your application.
driftingruby/061-periodic-tasks-with-sidekiq-cron
Using a third-party add-on, sidekiq-cron, we can create periodic tasks to extend the functionality of sidekiq.
driftingruby/085-working-with-subdomains
Learn to create a multi-tenant application where access to tenants are determined by the subdomain.
driftingruby/100-basic-testing-introduction-in-rails
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.
driftingruby/044-capturing-signatures-with-signature-pad
Using the Javascript Library, Signature Pad, learn how to capture user signatures and store them within your Ruby on Rails application.
driftingruby/052-rails-api-throttling-with-rack-attack
Save expensive calculation time using Rack::Attack, we will learn how to limit requests coming into our application. This gem not only limits requests, but can be used to blacklist or whitelist users as well.
driftingruby/075-drag-and-drop-with-interact-js
Using Interact.js to create draggable and droppable items in our view, we can use AJAX callbacks on events to interact with our Ruby on Rails application. Also, learn how to use Ruby Assets to manage our Javascript Libraries.
driftingruby/009-activejob
ActiveJob is a built in wrapper within Rails 4 for your background processors. By adding this layer to your application, swapping background processors is much easier as you will only be affecting a limited number of files.
driftingruby/017-dependent-fields-rails
Using unobtrusive javascript, we can hide certain fields on forms based on the selected values of other fields.
driftingruby/018-caching-with-dalli
Dalli is a great interface for Memcached through Ruby.
driftingruby/022-faye-websockets-part-1
Using WebSockets, we are able to create a realtime notification between browsers. Useful for in-app messaging, chats, and more! Learn how to use Faye's Publish and Subscribe methods. I believe that this paves the way for successfully using and learning the upcoming ActionCable.
driftingruby/023-uuid-in-rails-with-activeuuid
Some cases require non-auto incrementing primary keys as well as multiple master writes without id conflicts. With ActiveUUID, we can configure our table's primary key with confidence without added complexity.
driftingruby/024-fragment-caching
Make your application faster by leveraging memory and caching fragments of your view.
driftingruby/038-action-cable-part-2-more-complex-example
Extending the previous episode, we look into making a realtime poll application where users can get live feedback on voting.
driftingruby/078-counter-caching-associations
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.
driftingruby/081-bootstrap-framework-and-ruby-on-rails
Using Bootstrap in your application has become much more simple. Also learn to create some helper methods to make working with Bootstrap much easier.
driftingruby/084-geocoding-places-and-maps
Using the Geocoder gem and Google APIs, learn how to add some geolocation functionality to your application.
driftingruby/089-creating-custom-ruby-on-rails-generators
Simplify your workflow by using custom generators to streamline the creation of files and templates that you use often.
driftingruby/090-benchmarking-and-refactoring-the-content-for-view-helper
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.
driftingruby/091-custom-error-pages-with-slack-notification
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.
driftingruby/093-recurring-events-with-ice-cube
ice_cube is a ruby library for easily handling repeated events and schedules.
driftingruby/095-active-record-migrations
This episode covers different tips and tricks around database migration files.
driftingruby/113-ruby-on-rails-5-2-0-changes-and-new-features
driftingruby/118-ruby-on-rails-tips-and-tricks