The Curious Engineer

All blogs / Ruby / Rails

Write Software Well

writesoftwarewell.com

A blog about software development done right, with a special focus on Ruby on Rails.

Ruby / RailsWeb developmentDatabases

Posts
208 from 21 Aug 2021 to 13 Oct 2026
Posting
monthly (7 in the last year)
Kind
personal blog
Feed
https://writesoftwarewell.com/feed/

2026 5

  1. Going Enterprise
  2. How to Safely Drop Columns in Rails
  3. Refactoring Databases (in Rails)
  4. Finally, the Rails Blog Runs on Rails
  5. Understanding ActiveStorage Variants for Image Transformations in Rails

2025 27

  1. You Can Now Access Bearer Tokens Directly from Request
  2. Combined Credentials in Rails 8.2
  3. Active Storage Internals: How has_one_attached DSL Works
  4. Active Storage Domain Model: Blobs and Attachments
  5. Rails on Localhost: Secure Context and Local HTTPS with Caddy
  6. Sitemaps: A Quick SEO Win for New Websites
  7. Polymorphic URLs with direct Router Helper
  8. Working Effectively with AI as a Developer
  9. How to Inspect the Sequence of Controller Callbacks in Rails
  10. Thoughts on Freelancing for Web Developers
  11. Redirects in Rails: Manual, Helper, and Internals
  12. Understanding the Render Method in Rails
  13. Vibe Learning is Underrated
  14. Serving Large Files in Rails with a Reverse Proxy Server
  15. Fix N+1 Queries Without Eager Loading Using SQL Subqueries
  16. Reduce Memory Usage by Selecting Specific Columns Apr 6, 2025
  17. Profiling Ruby on Rails Applications with Rails Debugbar Apr 2, 2025
  18. Why You Need Strong Parameters in Rails Mar 19, 2025
  19. Working with HTTP Responses in Rails Mar 10, 2025
  20. Working with HTTP Requests in Rails Mar 7, 2025
  21. Understanding Rails Parameters Mar 5, 2025
  22. New Series on Rails Controllers Mar 3, 2025
  23. Restrict Destroying Dependent Rails Associations with Error Feb 19, 2025
  24. Backup SQLite from a Containerized Rails App Deployed with Kamal Feb 17, 2025
  25. Working with the Rails Instrumentation API Feb 8, 2025
  26. How a Ruby Method Becomes a Rails Action: Part One Jan 4, 2025
  27. Using Hotwire for Inline Form Updates Without Form Submission Nov 12, 2024

2024 49

  1. A Brief Introduction to Rails Initializers: Why, What, and How Oct 19, 2024
  2. Not-Null Shortcut in Rails 8 Migration Generator Oct 7, 2024
  3. If You're a WordPress Developer, Learn Ruby and Rails Sep 26, 2024
  4. How to Count the Number of Commits After a Specific Commit in Git Aug 25, 2024
  5. The Rails Router Handbook Aug 8, 2024
  6. Routing Concerns in Rails Aug 7, 2024
  7. Understanding Shallow Nested Routes in Rails Aug 6, 2024
  8. Working with Resourceful Routes in Ruby on Rails Aug 2, 2024
  9. Map a Resourceful Route in Rails to Another Controller Class Jul 29, 2024
  10. How to Route an Incoming URL to a Rack Application in Rails Jul 29, 2024
  11. Working with Nested Resources in Ruby on Rails Jul 22, 2024
  12. How to List and Filter Routes in Ruby on Rails Jul 18, 2024
  13. Understanding the Match Method in Rails Router Jul 15, 2024
  14. How to Override the Named Route Parameter ID in Rails Jul 12, 2024
  15. Understanding Named Routes in Rails Jul 10, 2024
  16. How to Add a root Route in Rails Jul 9, 2024
  17. How to Redirect Incoming HTTP Requests Using Rails Router Jul 2, 2024
  18. How to Access Raw POST Data in Rails Jun 26, 2024
  19. Rails Router: Dynamic Segments and Query Strings Jun 22, 2024
  20. Polymorphic Associations in Rails: Why, What, and How Jun 16, 2024
  21. A Brief Overview of the Rails Routing Config File Jun 14, 2024
  22. Introduction to the Routing System in Rails Jun 9, 2024
  23. My Notes from Shape Up: Shipping Work that Matters Jun 2, 2024
  24. How to Setup Rails-like Integration Tests in Ruby May 26, 2024
  25. How to Access Rails Models in a Rake Task May 19, 2024
  26. I am Available as a Freelance Developer Apr 24, 2024
  27. From a Lorry Driver to Ruby on Rails Developer at 38 Apr 19, 2024
  28. How I Read Rails Source Code Apr 12, 2024
  29. Build Your Own Router in Ruby Mar 31, 2024
  30. Growing Object-Oriented Software, Guided by Tests Mar 24, 2024
  31. Understanding Ruby's defined? Keyword Mar 14, 2024
  32. Honeybadger Now Supports Logging and Event Monitoring Mar 5, 2024
  33. Let's Build a Web Application in Ruby without Rails Mar 4, 2024
  34. What Does the Frozen String Literal Comment Do in Ruby? Mar 1, 2024
  35. Speed Up Your Tests Using VCR Gem in Ruby Feb 23, 2024
  36. Playing Sounds in Rails with the Audio API Feb 21, 2024
  37. How to Generate Random Numbers in Ruby Feb 19, 2024
  38. Anonymous Block Forwarding in Ruby Feb 14, 2024
  39. Custom URL Helpers in Rails with the direct Method Feb 11, 2024
  40. Understanding the Rails Router: Why, What, and How Feb 5, 2024
  41. What is __FILE__ in Ruby? Feb 3, 2024
  42. Prevent Logging Sensitive Data with Rails Parameter Filters Feb 1, 2024
  43. Understanding How Rails Environments Work Jan 24, 2024
  44. Learn to Program Ruby with Me Jan 19, 2024
  45. How to Process a Turbo Stream Response in JavaScript using Stimulus Jan 15, 2024
  46. The Rails Config File Jan 11, 2024
  47. See Other After Destroy Jan 1, 2024
  48. How to Remove Whitespace from a String in Ruby Jan 1, 2024
  49. Annual Blog Review: 2023 Dec 27, 2023

2023 76

  1. Enqueue Multiple Jobs Together with perform_all_later in Rails Dec 23, 2023
  2. Nested Modules in Ruby Dec 21, 2023
  3. How to Read a File in Ruby Dec 19, 2023
  4. Rails Internals: A Deep Dive Into Active Job Codebase Dec 15, 2023
  5. Working with SQLite in Ruby Dec 11, 2023
  6. How respond-to Method Works in Rails Dec 7, 2023
  7. CDPATH: Easily Navigate Directories in the Terminal Dec 5, 2023
  8. How to Customize Rails Validation Errors to Remove Leading Attribute Column Names Nov 15, 2023
  9. How to Return 404 Not Found Error in Rails Nov 13, 2023
  10. Interview with Daniela Baron, Staff Engineer at FundThrough Nov 9, 2023
  11. Akshay's Blog is now Write Software, Well Oct 27, 2023
  12. Base64 Encoding, Explained Oct 23, 2023
  13. Length, Size, and Count in Ruby and Rails: When to Use Which? Oct 14, 2023
  14. Interview with Miles Woodroffe, former Global CTO of Cookpad Oct 10, 2023
  15. The Difference Between nil?, empty?, and blank? in Ruby Oct 7, 2023
  16. Refactoring: Improving the Design of Existing Code (My Notes and Highlights) Oct 5, 2023
  17. What Happens When You Run Rails dev:cache Command? Sep 30, 2023
  18. How to Access a Ruby Hash with both String and Symbol Keys Sep 27, 2023
  19. How to Debug and Step-Through Rails Codebase Sep 16, 2023
  20. The Complete Guide to Working With Cookies in Rails Sep 14, 2023
  21. Rails Middleware: (Almost) Everything You Need to Know Sep 9, 2023
  22. Let's Read the Turbo Source: What Happens When You Click a Link? Sep 6, 2023
  23. Let's Implement the Map Method from First Principles Sep 3, 2023
  24. Rails Database Migrations Cheatsheet Aug 31, 2023
  25. Practical Stimulus: Building a Counter Component Aug 23, 2023
  26. Ruby's Hash is a Swiss-Army Knife Aug 20, 2023
  27. Abbrev: A Hidden Ruby Gem Aug 16, 2023
  28. Using Zeitwerk Outside Rails Aug 12, 2023
  29. How to Implement Content Security Policy in Rails Aug 9, 2023
  30. You Don't Need Rails to Start Using Hotwire Aug 6, 2023
  31. Content Security Policy (CSP): What Every Web Developer Must Know Aug 3, 2023
  32. Serving Static Files in Ruby Jul 30, 2023
  33. Logging in Ruby: (Almost) Everything You Need to Know Jul 30, 2023
  34. How to Dynamically Create Instance Variables in Ruby Jul 25, 2023
  35. How to Render SVG Icons in Ruby on Rails Jul 19, 2023
  36. How to Implement Rails-like Dynamic Views in Ruby Jul 15, 2023
  37. Implementing Rails-like Controllers in a No-Rails App Jul 11, 2023
  38. Understanding the Concept of Binding in Ruby Jul 8, 2023
  39. How to Split a List into N Equal Parts in Ruby (and Rails) Jun 24, 2023
  40. Blocks, Procs, and Lambdas: A Beginner's Guide to Closures and Anonymous Functions in Ruby Jun 17, 2023
  41. Practical Stimulus: Capture User Input Jun 17, 2023
  42. How Module Autoloading Works in Ruby and Rails Jun 14, 2023
  43. Practical Stimulus: How to Toggle CSS Classes Jun 11, 2023
  44. How to Create a Form with Multiple Submit Buttons to Different URL Endpoints Jun 3, 2023
  45. Generating Secure Tokens on Your ActiveRecord Models May 31, 2023
  46. How to Render Markdown Views in Rails May 25, 2023
  47. Concerns in Rails: Everything You Need to Know May 20, 2023
  48. How to Create Custom Flash Types in Rails May 17, 2023
  49. Inline Routes in Rails May 15, 2023
  50. Simplifying My Blogging Workflow with Ruby May 13, 2023
  51. Did You Know that You Can Catch and Throw Stuff in Ruby? May 9, 2023
  52. Various Ways to Run Shell Commands in Ruby Apr 29, 2023
  53. Ruby's Switch Statement is More Flexible Than You Thought Apr 25, 2023
  54. Can You Spot the Error? Apr 23, 2023
  55. A List of Books to Learn Programming with Ruby and Rails Apr 20, 2023
  56. How to Access Hash Values with Methods Using OrderedOptions Apr 15, 2023
  57. The Definitive Guide to Rack for Rails Developers Apr 9, 2023
  58. Readonly Attributes in Rails Apr 4, 2023
  59. Sessions in Rails: Everything You Need to Know Mar 29, 2023
  60. Understanding the Attribute Assignment API in Rails Mar 23, 2023
  61. Progressive Application Development with Hotwire Mar 20, 2023
  62. Configuring Rails Environments Mar 4, 2023
  63. Turbo Streams: How They Work and Differ From Turbo Frames Feb 28, 2023
  64. A Brief Introduction to Hotwire Feb 18, 2023
  65. How Rails Authenticity Tokens Protect Against CSRF Vulnerability Feb 17, 2023
  66. Cross-Site Request Forgery (CSRF) Attack: What It Is, How It Works, and How to Prevent It Feb 12, 2023
  67. Docked Rails: Setup a Ruby on Rails Application on Docker 🐳 Feb 7, 2023
  68. The Difference Between load, autoload, require, and require_relative in Ruby 📖 Jan 28, 2023
  69. Open GitHub Repositories in VS Code In-Browser Jan 22, 2023
  70. Method Shorthand in Ruby Jan 19, 2023
  71. How to Explicitly Render a Different View in Rails Jan 19, 2023
  72. class_eval vs. instance_eval in Ruby Jan 15, 2023
  73. Array Inquiry in Rails Jan 8, 2023
  74. How to Check If Value Exists in an Array in Ruby (and Rails) Jan 5, 2023
  75. Tracking TODO and FIXME Comments with Rails Notes Command Jan 3, 2023
  76. What Happens When You Call render? Let's Understand the Rails Rendering Process Dec 29, 2022

2022 38

  1. Regular Expressions in Ruby Dec 26, 2022
  2. Let's Learn Ruby on Rails + Hotwire by Building a To-Do List Dec 11, 2022
  3. How to Undo Generate Scaffold Command in Rails Nov 13, 2022
  4. How self Keyword Works in Ruby Nov 4, 2022
  5. Setting Up Development Environment for Rails Oct 18, 2022
  6. Define Custom Routes Using the Member and Collection Blocks in Rails Oct 15, 2022
  7. How &:method Shortcut Works in Ruby Oct 13, 2022
  8. Building Web Applications with Ruby on Rails Oct 11, 2022
  9. Understanding Blocks and the Difference in Proc and Lambda Oct 7, 2022
  10. Compare Strings Using Inquiry Sep 30, 2022
  11. How to Compress a String in Ruby (and Rails) Sep 28, 2022
  12. Configure Classes Using the Configurable Concern in Rails Sep 27, 2022
  13. How to Access Variables Outside Scopes in Ruby Sep 23, 2022
  14. Ruby is a Meritocracy Sep 22, 2022
  15. How to Benchmark Rails Views Sep 21, 2022
  16. How to Benchmark Ruby Code Sep 16, 2022
  17. Understanding Authenticity Tokens in Rails Sep 13, 2022
  18. Metaprogramming in Ruby Sep 12, 2022
  19. How to Get an Object's Class Name in Rails Sep 11, 2022
  20. A Deep Dive Into Database Migrations in Rails Sep 9, 2022
  21. Attributes API in Rails Sep 8, 2022
  22. How to Get the Current Absolute URL in Rails Sep 7, 2022
  23. How to Rename a Database Column in Rails Sep 6, 2022
  24. Metal Controller in Rails Aug 16, 2022
  25. Active Job: How does it work? Aug 12, 2022
  26. Up and Running with Minitest Jun 29, 2022
  27. Ruby Shortcut to Call a Method with Each Array Item as Parameter Jun 10, 2022
  28. How to Manage Environment Variables in Rails Jun 2, 2022
  29. Useful Linux Commands May 12, 2022
  30. How to Convert a Ruby Object to Hash May 1, 2022
  31. Useful Ruby Gems Apr 25, 2022
  32. How to Access Route Helpers from Rails Console and Models Apr 19, 2022
  33. Why Turbo Uses Event Capturing Apr 11, 2022
  34. Why Choose `let` Over instance variables in RSpec Mar 25, 2022
  35. Inline Edits using Turbo Frames Feb 25, 2022
  36. Turbo Drive Essentials Feb 11, 2022
  37. Launching Multiple Processes with a Single Command in Rails Jan 30, 2022
  38. How to Setup Tailwind 3 on Rails Dec 13, 2021

2021 11

  1. Couldn't Find Handler For: puma, thin, falcon, webrick Dec 9, 2021
  2. All the Database Tasks in Rails Dec 8, 2021
  3. How to Drop a Table in Rails Dec 7, 2021
  4. How to Test Rails Source Code Nov 28, 2021
  5. Include and Extend Sep 25, 2021
  6. Modifying Objects in Place Sep 22, 2021
  7. Class Metaprogramming in Ruby Sep 21, 2021
  8. How to Implement Callbacks in Ruby Sep 20, 2021
  9. A List of Middleware Used by Rails Sep 15, 2021
  10. Caching in Rails Aug 21, 2021
  11. A Brief Introduction to Rake Aug 16, 2021

Undated 2

  1. Learn more
  2. testimonials