tl;dr Since Rails 7+ you can use ComparisonValidator for validations like greater_than, less_than, etc. on dates, numerics...

You can use ETags to allow clients to use cached responses, if your application would send the same contents as...

makandra dev

tl;dr git checkout is the swiss army of git commands. If you prefer a semantically more meaningful command for...

Ruby's standard library includes a class for creating temporary directories. Similar to Tempfile it creates a unique directory name...

tl;dr Since Rails 6+ you can use before? and after? to check if a date/time is before or after...

To allow HTTP 304 responses, Rails offers the fresh_when method for controllers. The most common way is to pass...

A memory leak is an unintentional, uncontrolled, and unending increase in memory usage. No matter how small, eventually, a leak...

For Rails models where only one of multiple attributes may be filled out at the same time, there is no...

When you build a JSON API you need to come up with a style to represent attributes, pagination, errors or...

greg.molnar.io

Greg Molnar has written a neat article about creating a single-file Rails app. This is not meant for production...

Sometimes the need arises for SSL in local development. We have guides for different webservers, this one is for puma...

When your Rails application offers downloading a bunch of files as ZIP archive, you basically have two options:

Recently we detected a memory leak in one of our applications. Hunting it down, we found that the memory leak...

paweldabrowski.com

The linked content includes a few design patterns implemented with Ruby on Rails. What is the card indented to achieve...

This should be fixed in the latest LTS-branches of our mysql2 fork, 0.2.x-lts and 0.3.x-lts...

To read the Rails session from a Rack middleware, use env['rack.session']. It's an ActionDispatch::Request::Session object.

Issue: You have an app using jsbundling-rails and esbuild. After deploy, the assets built by esbuild are missing in...

While working on a Rails application, your code base will grow a collection of different file types including: Ruby (business...

In case you have trouble with the zeitwerk autoloader, you can check out the documentation Autoloading and Reloading Constants and...

Instead of using Puppet exported resources you can use the puppetdb_query feature. This can result in more complex code...

tl;dr Since Rails 6.1+ you can use .compact_blank or .compact_blank! to remove blank values from collections (e.g...

When paginating records, we usually need to know the number of total records in order to render pagination links. Popular...

joshmcarthur.com

I recently wanted to add a model for address information but also wanted to add a unique index to those...

blog.saeloun.com

Imagine these models and associations: class Deck < ApplicationRecord has_many :cards end class Card < ApplicationRecord belongs_to :deck, optional: true...