Why Rails has multiple schema formats When you run migrations, Rails will write your current database schema into db/schema.rb. This...
ActiveStorage does not provide any built-in way of implementing authentication for the available DirectUpload endpoint in Rails. When using...
PostgreSQL can cosplay as a full-text search engine. It doesn't have the features or fidelity of ElasticSearch or...
Method delegation in Rails can help you to keep your code organized and avoid deep call chains (law of demeter...
Haml renders HTML with indentation reflecting the nesting level of elements. When it comes to white-space preserving content, this...
Given there is a user with an attachable avatar: class User < ApplicationRecord has_one_attached :avatar end
Rails wraps your parameters into an interface called StrongParameters. In most cases, your form submits your data in a nested...
The new params.expect method in Rails 8 improves parameter filtering, addressing issues with malformed input and enhancing security. It provides...
Bundler allows you to specify the name of the Gemfile you want to bundle with the BUNDLE_GEMFILE environment variable...
Also see the list of IRB commands. Switching the context Changes the "default receiver" of expressions. Can be used to...
To reverse lookup a fixture by its table name and id, use the following approach on ActiveRecord::FixtureSet: table = 'users...
TL;DR: Rails ships two methods to convert strings to constants, constantize and safe_constantize. Neither is safe for untrusted...
In development, we store files using ActiveStorage's disk service. This means that stored files are served by your Rails...
tl;dr When a cookie includes an Expires attribute or an HTTP response includes caching headers like Expires or Cache...
In FactoryBot factories, Rails' file_fixture is not available by default. To enable it, include a support module from rspec...
Rails slightly changed the fragment cache implementation from Rails 7.0 to Rails 7.1. Unfortunately, this is incompatible with how Haml...
When Ruby objects are inspected in any modern IRB, some objects (like ActiveRecord instances) are rendered with neat colors and...
Rails' fragment caching caches subtrees of an HTML document tree. While constructing that tree though, it can be really hard...
YJIT is Ruby's default just-in-time compiler. It is considered production-ready since Ruby 3.2 (source).
We recently migrated a Rails application from yarn to npm. We decided to go this step instead of upgrading to...
Zeitwerk is the new autoloader of Rails. It is mandatory starting with Rails 7.0. Sometimes, a model needs to know...
Rails 7.1 added the normalizes method which can be used to normalize user input. It lets you define the fields...
When using Rails credentials, you will edit the encrypted credentials for staging or production environments from time to time. To...