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/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.
driftingruby/065-searchkick-and-elasticsearch
Add full text searching using Searchkick and Elasticsearch. Here I will show the steps involved in adding this search to an existing application and a sample of autocomplete functionality.
driftingruby/082-datatables
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.
driftingruby/047-authorization-with-pundit
Prevent unauthorized access to your application with Pundit; an authorization library for Ruby on Rails which restricts what resources a given user is allowed to access.
driftingruby/071-nested-forms-with-cocoon
Using the unobtrusive gem, Cocoon, learn how to handle multiple models in a single form with accepts_nested_attributes_for.
driftingruby/002-Impressionist
A lightweight plugin that logs impressions per action or manually per model
driftingruby/028-WYSIWYG-with-Trix
Compose beautifully formatted text in your web application. Trix is a WYSIWYG editor for writing messages, comments, articles, and lists.
driftingruby/050-rails-api-active-model-serializers
Using ActiveModel::Serializer, learn how to create the JSON responses for your Rails API application. ASM is a great object oriented approach to building a JSON API.
driftingruby/080-routing-partials
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.
driftingruby/092-restricting-access-by-ip-address
Learn to lock down your application or parts of your application by IP Addresses.
driftingruby/103-sample-data-with-factory-bot-and-faker
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.
driftingruby/004-serialized-attributes
Store multiple attributes and values using a text column. Not for everyday use, but has situations where it can save on the number of columns and/or models needed to accomplish a task.
driftingruby/016-complex-strong-params
Make your strong parameters do more by extracting the logic in order to maximize the ability and security of your application.
driftingruby/037-actioncable-part-1-configuration-and-basics
A walkthrough on configuring ActionCable with Rails 5. Learn how to configure your mount points and the basics of using ActionCable with your Rails application.
driftingruby/049-rails-api-basics
A brief introduction on Rails API. Learn how to create an API application and setup the routes. This episode is paving the way for more in depth looks into Rails API.
driftingruby/062-security-and-static-code-analyzers
Whether your preparing for a third-party security scan or already doing peer code reviews, you should always run brakeman scanner on your application to identify potential security vulnerabilities.
driftingruby/073-pagination-with-kaminari
When displaying a significant number of records, it is often a basic functions in a web application is to paginate the records and load them as requested.
driftingruby/007-sitemap-generator
Adding Search Engine Optimization to your site is easy. However, maintaining it can be difficult. This episode shows how to approach the sitemap indexing.
driftingruby/012-static-pages-with-high-voltage
Creating Static Pages within your Rails application is easy and configurable with High Voltage.
driftingruby/013-uploading-files-with-refile
Refile is a modern file upload library for Ruby applications. It is simple, yet powerful. This episode covers the basics of uploading and displaying images. Next episodes will cover protecting files and progress bars.
driftingruby/014-securing-file-uploads
Be default, Refile does not have a way to secure file downloads. It relies on a generated hash that is unknown to users unless the page renders that image or has a download to that file. This is okay sometimes, however, protecting the file from being downloaded for those who have the URL is a bit more involved.
driftingruby/019-deleting-and-undeleting-with-paranoia
When your app is using Paranoia, calling destroy on an ActiveRecord object doesn't actually destroy the database record, but just hides it.
driftingruby/020-not-rjs-and-turbolinks
Using Javascript responses, we can make our Rails application have a quick and responsive Single Page Application feel to it.
driftingruby/021-not-rjs-and-turbolinks-part-2
A continuation from Episode 20 where we explore rendering the user's edit pages in a modal on a per request basis. Instead of rendering all modals for the users in the index, we will request them using remote javascript.
driftingruby/025-faye-websockets-part-2
Learn how to install and configure a thin server within a Linux environment hosting a Faye WebSocket application. This episode includes showing you how to server your WebSockets over a secure SSL connection.
driftingruby/026-meta-tags
Adding Meta Tags to your website is important for SEO ranking and content display. Learn how to easily add meta tags to your Ruby on Rails application.
driftingruby/030-eager-loading-with-goldiloader
Wouldn't it be awesome if ActiveRecord didn't make you think about eager loading and it just did the "right" thing by default? With Goldiloader it can!
driftingruby/087-virtual-columns-in-mysql
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.
driftingruby/101-testing-with-rspec
Using RSpec, learn how to create tests for your application and view your coverage.
driftingruby/102-feature-testing-with-capybara
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.