Rails library
includes still decides between separate queries and a LEFT OUTER JOIN on your behalf, which is why a 2014 post on eager loading is the Rails page on this site that ranks today. Alongside recent writing, the older posts from 2013 to 2015 are marked for what still applies. Each older post carries a dated update note on the post itself.
Recent Rails writing
- Active Storage libvips checks before deployment (2026)
Published 24 September. A sourced platform matrix, tested Docker changes and a CI check for the libvips library loaded by Ruby. The examples establish compatibility checks, not production deployment results.
- Rails upgrade checks (2026)
Published 21 September. Checks from the 18 September Rails update for PostgreSQL metadata, image processing and streaming headers, with release status and focused experiments.
Payments and integrations
- Verifying a legacy ACH migration in a Rails application (2026)
Published 23 September. Legacy ACH account identity, PaymentIntent states, cutover controls and late returns. The synthetic Rails fixture does not execute a payment or verify a provider migration.
- Retrying a timed-out payment request in Rails (2026)
Published 22 September. Persisted request identity, bounded retries and unresolved outcomes when creating a Stripe PaymentIntent. The synthetic companion uses a local fake provider and does not execute a payment.
Still applies, with a dated update note
- Eager loading in Rails (2014)
The N+1 problem is unchanged; includes, preload, eager_load, strict_loading and load_async are the tools now.
- Saving an object while skipping callbacks (2014)
The sanctioned callback-free paths today are insert_all, upsert_all, update_column, update_all, touch_all and delete_by; save(validate: false) still runs callbacks.
- Caching in Rails (2014)
Page caching left core in Rails 4; Solid Cache is the default store since 8.0, beside Redis and Memcached, collection caching and HTTP caching.
- Multi-tenancy in Rails (2014)
Schema-per-tenant gave way to connects_to shards, acts_as_tenant for rows, and ActiveRecord::Tenanted for database-per-tenant (SQLite only today).
- Before internationalizing a Rails application (2014)
The concepts hold; the configuration keys changed. Read with the companion post on the challenges.
- Challenges in internationalizing a Rails application (2014)
Pluralization and fallbacks as described; to be merged with the companion post.
- Unicode-aware regular expression validations (2014)
Onigmo classes are standard, Ruby 4.0 ships Unicode 17.0, and the format validator requires anchors.
- Oracle charset issues with Unicode data in Rails (2014)
oracle-enhanced 8.1.x tracks Rails 8.1; NLS_LANG and TZ still belong in an initializer; the behaviour below still bites.
- Rails and the database (2013)
Composite primary keys, load_async, production SQLite with the Solid stack, shards and sorted schema.rb have arrived since.
- Front-end performance in a Rails application (2014)
The measurement approach still applies; Sprockets concatenation gave way to Propshaft, importmap and Thruster.
- Testing in Rails (2013)
Minitest, system tests, parallel tests above 50 cases and bin/ci with config/ci.rb have replaced the tooling described.
Rails 3 era, read for history
- Dissecting Ruby and Rails (2013)
The stack described no longer exists; read for history.
- Popular Rails-based CMSs (2013)
The engines listed target Rails 6.0 and 8.x; Rails 8.1 renders Markdown natively and Action Text is moving to Lexxy.
- Hosting a Rails website (2013)
Heroku entered a sustaining-engineering model on 6 February 2026; Rails 8 positions Kamal 2 as its no-PaaS default.
- Rails versus other languages (2013)
Read with dated usage numbers: Rails is used by 5.9 percent of 2025 Stack Overflow respondents.
- The idea behind Rails (2013)
Convention over configuration still holds; the Rails Doctrine says it better.
Case studies
- A fintech Rails API upgrade, 6.1 to 7.1 (anonymous; detail under NDA)
- A healthcare Rails resurrection, 3 to 7 (anonymous; detail under NDA)
Upgrade logs from our own estate
Our internal Rails applications are moving from 7.0 and 7.2 to 8.1 with a per-app log of what broke on each hop and what fixed it. The logs are published here, anonymized per application, as they are written up. None is published yet.
Sources: Active Record querying guide.
Reference
Part of Ruby on Rails consulting at Allerin. Founded 2005. Austin, Texas.