When you allow file uploads in your app, a user might upload content that hurts other users. Our primary concern...

Every Rails response has a default ETag header. In theory this would enable caching for multiple requests to the same...

In Ruby on Rails ActiveRecord::Relation#merge overwrites existing conditions on the same column. This may cause the relation to...

youtube.com

The linked content describes: The different color space of Oklch and RGB/HSL (HDR colors) The advantage of Oklch when you...

blog.mastermind.dev

I found the linked article very helpful to refresh my understanding of database indexes. As a small bonus, it includes...

Haml 6 was a major rewrite with performance in mind. To achieve a performance improvement of 1.7x, some design...

Usually you add errors to :base in ActiveRecord, in case no appropriate attribute could be used to add the error...

Maintaining larger projects makes it more difficult to balance refactoring and upgrade tasks according to its actual value. Consider to...

Let's say we have posts with an attribute title that is mandatory. Our example feature request is to tag...

Rails Active Support provides some helpful methods for calculating times and dates, like Duration#ago or Duration#from...

By activating strict_loading you force developers to address n+1 queries by preloading all associations used in the index...

ruby-doc.org

We will achieve this by creating a block accepting method to optionally create and then lock a .lock File of...

The change_column method for rails migrations support casting with a custom SQL statement. This allows us to change a...

makandra dev

This is a checklist I use to work on issues. For this purpose I extracted several cards related to the...

In the past we validate and set default values for boolean attributes in Rails and not the database itself.

HTTP header values must only contain low-ASCII (7-bit) characters for safe transport. From RFC 7230: Historically, HTTP has...

Not all email clients support external images in all situations, e.g. an image within a link. In some cases, a...

Carrierwave's BaseUploader can have some validations that you can use by overriding a certain method, which's expected name...

Since Rails 7 you are able to encrypt database information with Active Record. Using Active Record Encryption will store an...

Sometimes I ran across a GitHub merge request of a gem where it was not completely obvious in which version...

Let's assume that we have a model Movie that registers a callback function when a new instance of Movie...

I recently enjoyed debugging a Cucumber step that tried to be retryable using a patiently block: Then /^"([^"]*)" should( not)? be...

kukicola.io

Using ActiveRecord's #signed_id and .find_signed methods you can create URLs that expire after some time. No conditionals...

When an object is created / updated, various callbacks are executed in this order: before_validation after_validation before_save