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
- Ruby 3.3 to 3.4 before your next Rails upgrade (2026)
Published 30 September. Dependency declarations, string warnings and output assertions with Rails held fixed. Tests on Ruby 3.3.12 and 3.4.10 cover the generated fixture; they do not establish application-wide compatibility or performance.
- Rails 7.2 to 8.0 without replacing your stack (2026)
Published 27 September. Required API and dependency changes, app:update conflicts and framework defaults while retaining compatible Sprockets, Sidekiq, Redis and Devise. The generated application does not establish production rollout safety.
- 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
- Rails adapter tests for currency fields and catalog changes (2026)
Published 29 September. SKU currencies and limits, and catalog selections expanded at call time. The local adapter fixture uses documented Tremendous behavior without calling its API or establishing production interoperability.
- Reconciling a payment after an accounting update partly succeeds (2026)
Published 28 September. Stable posting references, recovery after a lost response and discrepancies grouped by reason and currency. The fictional accounting partner illustrates operational reconciliation; it does not establish accounting policy or production recovery.
- When should a Rails webhook return a successful response? (2026)
Published 26 September. Durable receipts, queue failures and recovery after interrupted processing. The synthetic fixture separates accepted events from completed work; it does not test live Stripe delivery or concurrent processing.
- Rails partner integration acceptance tests that survive a replay (2026)
Published 25 September. Tenant-scoped contact mapping, source-version conflicts and partial-batch replay. The synthetic Rails fixture tests selected acceptance cases, not a live partner integration or whole-application security.
- 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.