A Rails script lives in lib/scripts and is run with bin/rails runner lib/scripts/.... They are a simple tool to perform...
There are a few tools to combat the dreaded n+1 queries. The bullet gem notifies you of missing eager...
Today I learned that you can animate HTML elements using the Web Animation API's method .animate(keyframes, options) (which...
Here are some hints on best practices to maintain your tasks in larger projects. Rake Tasks vs. Scripts
Version 3.7.0 broke some things in complex forms. Sorry for that. Concurrent user input is hard. 3.7.1 This change fixes...
I recently did a quick research on how to better write down multiline statements like this: # Dockerfile RUN export DEBIAN...
A list of clever debugging tricks. TOC: Advanced Conditional Breakpoints monitor() class Calls Call and Debug a Function Pause Execution...
RubyMine has a collaboration feature called "Code With Me". Using it, you can invite someone into your local editor to...
The linked article suggests an interesting way to speed up tests of Rails + Postgres apps: PostgreSQL allows the creation of...
This Capistrano task runs a command on all servers. bundle exec cap production app:run cmd='zgrep -P "..." RAILS_ROOT/log/production.log...
A general overview about why and how we migrate can be found under Migrating from Elasticsearch to Opensearch
OpenAI is currently limiting the Audio generating API endpoint to text bodies with a maximum of 4096 characters.
In Capistrano 3, your Capfile requires 'capistrano/rails/migrations', which brings two Capistrano tasks: deploy:migrate and deploy:migrating. The former checks...
#pluck is commonly used as a performant way to retain single database values from an ActiveRecord::Relation Book.pluck(:title, :price...
Getting CSS (and JS) live reloading to work in a esbuild / Rails project is a bit of a hassle, but...
If you ever need to restore exact records from one database to another, Marshal might come in handy. Marshal.dump is...
The old Chrome downloads bar had several advantages over the new subtle downloads dropdown: see all (many, at least) downloads...
While upgrading CarrierWave from version 0.11.x to 3.x, we encountered some very nasty fails. Below are the basic...
TLDR Using .includes or .eager_load with 1-n associations is dangerous. Always use .preload instead. Consider the following ActiveRecord...
In the discussion of the difference between include and extend in Ruby, there is a misconception that extend would add...
Most of our applications use CarrierWave for file uploads. CarrierWave has an integrated processing mechanism for different file versions with...
Given you have an array column like this: create_table "users", force: :cascade do |t| t.integer "movie_ids", default: [], array...
View specs are a powerful tool to test several rendering paths by their cases instead of using a more costing...
The recommended additional setup of the spreewald gem, a useful set of cucumber steps, includes adding a file for defining...