<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>Code With Rails</title><description>Real-world tutorials on full stack web development with Ruby on Rails.</description><link>https://codewithrails.com/</link><language>en</language><item><title>Build a Resumable CSV Import with ActiveJob::Continuable</title><link>https://codewithrails.com/blog/rails-resumable-csv-import-continuable/</link><guid isPermaLink="true">https://codewithrails.com/blog/rails-resumable-csv-import-continuable/</guid><description>Use Rails 8.1&apos;s new job continuations to build a CSV import that survives worker restarts, picking up at the exact row it left off.</description><pubDate>Wed, 11 Feb 2026 00:00:00 GMT</pubDate></item><item><title>Rails 8.2 Preview: Type Safe JSON Attributes with has_json</title><link>https://codewithrails.com/blog/rails-has-json-type-safe-attributes/</link><guid isPermaLink="true">https://codewithrails.com/blog/rails-has-json-type-safe-attributes/</guid><description>Stop manually coercing form params to JSON types. Rails 8.2&apos;s has_json automatically converts strings to booleans, integers, and strings with schema enforcement.</description><pubDate>Mon, 02 Feb 2026 00:00:00 GMT</pubDate></item><item><title>Monitor CSRF Attacks in Production with Rails Notifications</title><link>https://codewithrails.com/blog/rails-csrf-notifications/</link><guid isPermaLink="true">https://codewithrails.com/blog/rails-csrf-notifications/</guid><description>An upcoming Rails change adds ActiveSupport notifications for CSRF events, giving you visibility into attack attempts and failed validations.</description><pubDate>Mon, 26 Jan 2026 00:00:00 GMT</pubDate></item><item><title>Rails retry_on: Build Smart Retry Strategies with Error-Aware Delays</title><link>https://codewithrails.com/blog/rails-smart-retry-strategies/</link><guid isPermaLink="true">https://codewithrails.com/blog/rails-smart-retry-strategies/</guid><description>Use retry_on&apos;s new error argument in Rails to build retry strategies that respect Retry-After headers, handle transient failures, and discard_on unrecoverable errors.</description><pubDate>Mon, 19 Jan 2026 00:00:00 GMT</pubDate></item><item><title>Stop Storing Duplicate Files in Rails with ActiveStorage Checksums</title><link>https://codewithrails.com/blog/activestorage-deduplication/</link><guid isPermaLink="true">https://codewithrails.com/blog/activestorage-deduplication/</guid><description>Detect identical file uploads and reuse existing ActiveStorage blobs. Save storage costs and make re-uploads instant using MD5 checksums scoped per user.</description><pubDate>Wed, 14 Jan 2026 00:00:00 GMT</pubDate></item><item><title>Rails Feature Flags Without a Gem: Build One in 50 Lines with Credentials</title><link>https://codewithrails.com/blog/rails-feature-flags-credentials/</link><guid isPermaLink="true">https://codewithrails.com/blog/rails-feature-flags-credentials/</guid><description>Skip LaunchDarkly and Flipper. Build a free, version-controlled feature flag system using Rails credentials in under 50 lines of code.</description><pubDate>Thu, 08 Jan 2026 00:00:00 GMT</pubDate></item><item><title>Multi-tenant Configuration with Rails.app.creds</title><link>https://codewithrails.com/blog/rails-multitenant-configuration/</link><guid isPermaLink="true">https://codewithrails.com/blog/rails-multitenant-configuration/</guid><description>Build a per-tenant configuration system using Rails 8.2&apos;s CombinedConfiguration. Let tenants override API keys, feature flags, and limits without code changes.</description><pubDate>Tue, 06 Jan 2026 00:00:00 GMT</pubDate></item><item><title>5 Unexpected Uses for Rails.app.creds Beyond Secrets</title><link>https://codewithrails.com/blog/rails-creds-unexpected-uses/</link><guid isPermaLink="true">https://codewithrails.com/blog/rails-creds-unexpected-uses/</guid><description>Rails 8.2&apos;s new credentials API isn&apos;t just for secrets. Use Rails.app.creds as composable configuration middleware for feature flags, rate limits, and more.</description><pubDate>Mon, 05 Jan 2026 00:00:00 GMT</pubDate></item><item><title>Live Countdowns Without JavaScript: Turbo Streams + relative_time_in_words</title><link>https://codewithrails.com/blog/rails-live-countdowns-turbo/</link><guid isPermaLink="true">https://codewithrails.com/blog/rails-live-countdowns-turbo/</guid><description>Build server-rendered countdown timers that update in real-time using Rails 8&apos;s new relative_time_in_words helper and Turbo Streams.</description><pubDate>Sun, 04 Jan 2026 00:00:00 GMT</pubDate></item><item><title>Rails 7.2 Connection Pool Changes May Slow Down Your App</title><link>https://codewithrails.com/blog/rails-72-connection-pool-performance/</link><guid isPermaLink="true">https://codewithrails.com/blog/rails-72-connection-pool-performance/</guid><description>Rails 7.2 changed how database connections are managed, causing a 5-6% performance regression for some apps. Here&apos;s why it happens and how to fix it.</description><pubDate>Sat, 03 Jan 2026 00:00:00 GMT</pubDate></item><item><title>Track Deployments with Rails.app.revision</title><link>https://codewithrails.com/blog/rails-app-revision/</link><guid isPermaLink="true">https://codewithrails.com/blog/rails-app-revision/</guid><description>Rails 8.2 adds Rails.app.revision for deployment tracking, error reporting, and cache busting.</description><pubDate>Fri, 02 Jan 2026 00:00:00 GMT</pubDate></item><item><title>Extract Bearer Tokens with Request#bearer_token</title><link>https://codewithrails.com/blog/rails-bearer-token/</link><guid isPermaLink="true">https://codewithrails.com/blog/rails-bearer-token/</guid><description>Rails adds a convenient method to extract bearer tokens from the Authorization header in API requests.</description><pubDate>Mon, 29 Dec 2025 00:00:00 GMT</pubDate></item><item><title>enqueue_after_transaction_commit: How Rails 8.2 Fixes an ActiveJob Bug</title><link>https://codewithrails.com/blog/rails-enqueue-after-transaction-commit/</link><guid isPermaLink="true">https://codewithrails.com/blog/rails-enqueue-after-transaction-commit/</guid><description>Rails 8.2 makes enqueue_after_transaction_commit the default. Jobs now wait for transaction commit before dispatching, preventing race conditions with uncommitted records.</description><pubDate>Mon, 22 Dec 2025 00:00:00 GMT</pubDate></item><item><title>accepts_nested_attributes_for Breaks Scoped Uniqueness Validation in Rails</title><link>https://codewithrails.com/blog/rails-nested-attributes-uniqueness-validation/</link><guid isPermaLink="true">https://codewithrails.com/blog/rails-nested-attributes-uniqueness-validation/</guid><description>Fix the Rails bug where accepts_nested_attributes_for allows duplicate records past scoped uniqueness validations. Includes workaround with custom validation.</description><pubDate>Mon, 15 Dec 2025 00:00:00 GMT</pubDate></item><item><title>How to save a recently viewed list of pages with Stimulus and localStorage</title><link>https://codewithrails.com/blog/stimulus-localstorage-recently-viewed/</link><guid isPermaLink="true">https://codewithrails.com/blog/stimulus-localstorage-recently-viewed/</guid><description>Creating a recently viewed pages list can significantly enhance the user experience by providing easy navigation and a history of recently accessed content.</description><pubDate>Wed, 28 Aug 2024 00:00:00 GMT</pubDate></item><item><title>How to create a Ruby on Rails gem from your existing code</title><link>https://codewithrails.com/blog/create-rails-gem/</link><guid isPermaLink="true">https://codewithrails.com/blog/create-rails-gem/</guid><description>A step-by-step tutorial on how we extract code from our Rails app, package it into a gem, and publish it on RubyGems.org</description><pubDate>Wed, 11 Jan 2023 00:00:00 GMT</pubDate></item><item><title>How to fix undefined method address_list in Rails 6.x and 7.x</title><link>https://codewithrails.com/blog/undefined-address-list-error/</link><guid isPermaLink="true">https://codewithrails.com/blog/undefined-address-list-error/</guid><description>Updating the mail gem breaks Mail#address_list - here&apos;s how to fix it.</description><pubDate>Tue, 27 Dec 2022 00:00:00 GMT</pubDate></item><item><title>FilePond File Uploads with Rails Active Storage: Setup Guide</title><link>https://codewithrails.com/blog/filepond-active-storage/</link><guid isPermaLink="true">https://codewithrails.com/blog/filepond-active-storage/</guid><description>Step-by-step guide to integrating FilePond&apos;s JavaScript file upload library with Rails Active Storage. Covers server.process configuration, direct uploads, and file validation.</description><pubDate>Mon, 26 Dec 2022 00:00:00 GMT</pubDate></item><item><title>Ruby 3.2 introduces Enumerator::product</title><link>https://codewithrails.com/blog/ruby-enumerator-product/</link><guid isPermaLink="true">https://codewithrails.com/blog/ruby-enumerator-product/</guid><description>Learn how to use the Enumerator::product method for generating Cartesian products in Ruby 3.2.</description><pubDate>Fri, 16 Dec 2022 00:00:00 GMT</pubDate></item><item><title>How to Install and Use Alpine.js with Rails and Turbo</title><link>https://codewithrails.com/blog/alpinejs-rails-turbo/</link><guid isPermaLink="true">https://codewithrails.com/blog/alpinejs-rails-turbo/</guid><description>Install Alpine.js in your Rails app and build flash messages, dropdowns, and modals alongside Turbo. A lightweight alternative to Stimulus for server-rendered apps.</description><pubDate>Tue, 13 Dec 2022 00:00:00 GMT</pubDate></item><item><title>Rails Authentication with Authentication Zero: A Better Alternative to Devise</title><link>https://codewithrails.com/blog/rails-authentication/</link><guid isPermaLink="true">https://codewithrails.com/blog/rails-authentication/</guid><description>Set up user authentication in Rails using the Authentication Zero gem. Full tutorial covering installation, sessions, and why it gives you more control than Devise.</description><pubDate>Mon, 28 Nov 2022 00:00:00 GMT</pubDate></item><item><title>How to Remove, Squash, and Clean Up Old Rails Migration Files</title><link>https://codewithrails.com/blog/clean-up-db-migrations/</link><guid isPermaLink="true">https://codewithrails.com/blog/clean-up-db-migrations/</guid><description>Learn when and how to safely delete old Rails migration files. Covers squashing migrations into schema.rb, using rails destroy migration, and pruning your db/migrate folder.</description><pubDate>Sat, 19 Nov 2022 00:00:00 GMT</pubDate></item><item><title>How to set up a Rails development environment with Docker</title><link>https://codewithrails.com/blog/rails-docker/</link><guid isPermaLink="true">https://codewithrails.com/blog/rails-docker/</guid><description>A step-by-step guide to containerizing your Rails development environment for consistent setup across teams.</description><pubDate>Fri, 18 Nov 2022 00:00:00 GMT</pubDate></item><item><title>Fix PG::UniqueViolation: PostgreSQL Sequence Out of Sync in Rails</title><link>https://codewithrails.com/blog/fixing-pg-unique-violation/</link><guid isPermaLink="true">https://codewithrails.com/blog/fixing-pg-unique-violation/</guid><description>Your PostgreSQL sequence is out of sync, causing false &apos;duplicate key value violates unique constraint&apos; errors. Here&apos;s how to diagnose and fix it with setval().</description><pubDate>Sat, 09 May 2020 00:00:00 GMT</pubDate></item></channel></rss>