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...

When Ruby objects are inspected in any modern IRB, some objects (like ActiveRecord instances) are rendered with neat colors and...

makandra dev

Capistrano 3 has a doctor task that will print information about Environment: Ruby, Rubygems and Bundler versions List of Capistrano...

makandra dev

YJIT is Ruby's default just-in-time compiler. It is considered production-ready since Ruby 3.2 (source).

github.com

Zeitwerk is the new autoloader of Rails. It is mandatory starting with Rails 7.0. Sometimes, a model needs to know...

When using Rails credentials, you will edit the encrypted credentials for staging or production environments from time to time. To...

While the main goal always is to prevent long-running queries in the first place, automatic timeouts can serve as...

makandra dev

This talk shows simple and advanced usages of the ruby/debug debugger. It goes through a step by step debugging workflow...

The ActiveSupport::BroadcastLogger allows you to log to multiple sinks. You know this behavior from from the rails server command...

Rails' default logger prefixes each log entry with timestamp and tags (like request ID). For multi-line entries, only the...

With this command you can run all the spec files which have been edited or added in the current branch...

I recently stumbled over a quirk in the way Ruby handles local variables that I find somewhat dangerous. Consider:

makandra dev

While most Rails Apps are tied to at least one external REST API, machine-to-machine communication via GraphQL is...

Some rubygems come in platform-specific versions (i.e. "x86_64-linux") in addition to the usual "ruby" platform. This is...

Running gem update --system will install the latest version of RubyGems. However the latest version might not be compatible with...

This card is a short summary on different ways of assigning multiple attributes to an instance of a class.

Using Capistrano, we usually have some array configurations in the config/deploy.rb file, like set :linked_files, %w[config/database.yml], so in...

If you are using the routing-filter gem in your Rails 7.1 app for managing URL segments for locales or...

As we're switching from PT to Linear, I've updated the existing bash script to work for commits that...

What is makandra cards? We are makandra, a team of 60 web developers, DevOps and UI/UX experts from Augsburg, Germany...

makandra dev

There are two ways a logout in SAML can happen: Service Provider (SP) initiated and Identity Provider (IDP) initiated logout...

Note Using rem only ever makes sense when the root font size is dynamic, i.e. you leave control to the...

Starting with Rails 7.1 the production logger is set to standard out. For applications running with opscomplete ensure to keep...