Rails' fragment caching caches subtrees of an HTML document tree. While constructing that tree though, it can be really hard...
YJIT is Ruby's default just-in-time compiler. It is considered production-ready since Ruby 3.2 (source).
We recently migrated a Rails application from yarn to npm. We decided to go this step instead of upgrading to...
Zeitwerk is the new autoloader of Rails. It is mandatory starting with Rails 7.0. Sometimes, a model needs to know...
Rails 7.1 added the normalizes method which can be used to normalize user input. It lets you define the fields...
I noticed that tig 2.5.1 that is provided by Ubuntu 22.04 repositories has inferior bash completion than older versions after...
When using Rails credentials, you will edit the encrypted credentials for staging or production environments from time to time. To...
Slow test suites are a major pain point in projects, often due to RSpec and FactoryBot. Although minitest and fixtures...
While the main goal always is to prevent long-running queries in the first place, automatic timeouts can serve as...
When handling nested hashes the RSpec output is often hard to read. Here the gem super_diff could help.
The ActiveSupport::BroadcastLogger allows you to log to multiple sinks. You know this behavior from from the rails server command...
I recently stumbled upon the Rails feature composed_of. One of our applications dealt with a lot of addresses and...
Rails 7.1 added a new method Rails.env.local?. If you want to stub the Rails env correctly, use ActiveSupport::EnvironmentInquirer like...
You can improve your LIKE / ILIKE search queries in PostgreSQL by adding a GIN index with an operate class ("opclass...
Rails' default logger prefixes each log entry with timestamp and tags (like request ID). For multi-line entries, only the...
Recently I needed to benchmark an Active Record query for performance measurements. I wrote a small script that runs each...
Rails credentials are a way to store secrets in an encrypted YAML file. Usage is simple: each key in the...
Sometimes we have to write code that behaves differently based on the version of a specific gem or the Ruby...
I was recently asked to optimize the response time of a notoriously slow JSON API endpoint that was backed by...
While most Rails Apps are tied to at least one external REST API, machine-to-machine communication via GraphQL is...
When Rails releases a new version of their gems, they also release a number of npm packages like @rails/activestorage or...
Running gem update --system will install the latest version of RubyGems. However the latest version might not be compatible with...
You might know a few examples, where you configure some library via a block. One example is the Rails configuration...
This cards describes an example with a Github Client on how to keep your Rails application more maintainable by extracting...