How to test a controller concern with rspec-rails anonymous controllers

RSpec controller concerns can be exercised with anonymous controllers, letting shared authorization behavior be tested through real requests without messy dummy routes or rebuilt stacks.

Popular mistakes when using nested forms

Common Rails nested form pitfalls include missing accepts_nested_attributes_for, wrong form helper scope, and lost parameters that prevent child records from saving.

Gem development: recommended gem metadata

Gem metadata can add source, bug tracker, changelog and MFA links to the RubyGems page, improving discoverability and security signals.

ActiveRecord: Specifying conditions on an associated table

ActiveRecord queries can filter on columns from an associated table without raw SQL, using subqueries, ID plucking, traverse_association, or joins.

How to balance wrapping flex rows

flex-wrap: balance evens out wrapped flex rows so wide layouts avoid lonely items and large gaps, with wrap as a safe fallback for older browsers.

Embedding Pannellum (360° panorama viewer) in an esbuild/Rails app

Pannellum offers a lightweight equirectangular panorama viewer for Rails and esbuild, but its npm package only attaches window.pannellum; container sizing and blob: CSP need care.

PostgreSQL: WITH Queries (Common Table Expressions)

CTEs simplify bulky PostgreSQL queries by factoring subqueries into reusable named result sets, improving readability and supporting SELECT, INSERT, UPDATE, and DELETE.

How DECIMAL columns deal with numbers exceeding their precision or scale

DECIMAL overflow and rounding differ by database: some systems reject out-of-range values, while others clamp or round to the nearest representable number.

Project management best practices: Project team responsibilities

Clear role separation in larger projects reduces coordination gaps, delays, and ownership confusion. The project lead drives delivery and technical decisions; the PM handles customer-facing requirements and acceptance.

Self-expiring URLs with Apache

Signed URLs for private uploads can expire without routing downloads through Rails, improving speed while reducing the risk of permanent access.

Jasmine: Testing AJAX calls that manipulate the DOM

AJAX DOM updates are hard to test when requests are asynchronous and the target element is missing. jasmine-ajax, jasmine-fixture, and done make network mocking and DOM setup possible.

Jasmine: Mocking ESM imports

Imported ESM functions are hard to spy on in Jasmine; several workarounds keep call counts testable, including wrapper objects, dependency injection, and test runners with module mocking.

Capistrano: Less deploy output, better overview

Capistrano deploys are noisy by default; a custom formatter reduces console clutter while keeping errors visible and the full log in log/capistrano.log.

Updated: How to apply transparency to any color with pure CSS

Pure CSS can make any color transparent without extra assets or scripting, including a variant using Relative Color Syntax.

SVGO: SVG Optimizer

SVG files often contain comments, metadata, and hidden elements that inflate size. SVGO reduces them while preserving proper scaling with viewBox.

Capybara can find links and fields by their [aria-label]

Capybara can locate form fields and links by aria-label, improving accessibility-aware test selectors when visible labels are missing.

Rails: Do not load frameworks you don't need

Loading every Rails framework increases startup time and memory use; disabling unused railties and gems keeps apps lighter and avoids unnecessary configuration.

Using path aliases in esbuild

Use path aliases to replace clunky relative imports with stable module shortcuts in esbuild, and wire those aliases into webpack, jest, Sass, and glob imports.

Carrierwave: Custom file validations inside custom Uploaders

MIME type checks can live in a CarrierWave uploader instead of every mounted model, keeping file-type validation centralized and raising CarrierWave::IntegrityError for bad uploads.

ActiveRecord::Relation#merge overwrites existing conditions on the same column!

ActiveRecord::Relation#merge can overwrite conditions on the same column and return too many records; where, subselects, and, or SQL snippets preserve the intersection.

Updated: Rails: Restrict deletion of a parent record using scoped associations

Scoped associations can block parent deletion when dependent records should remain valid; a cleaner callback setup and an example clarify the restriction.

Emulating contrast-color with pure CSS

Pure CSS can emulate contrast-color for older browsers using Relative Color Syntax and modern color spaces, producing automatic black-or-white text from the background.

Verifying doubles in RSpec 3

Safer test doubles in RSpec 3 verify stubbed methods and argument counts, catching interface mismatches while keeping isolated specs fast.

Capybara: Running tests with headless Chrome

Running Capybara system tests in Chrome without a visible window reduces CI friction and supports Docker, device emulation, PDF handling, and remote debugging.