RSpec >= 3.3 added aggregate_failures, which allows multiple failures in an example and list them all, rather than aborting on...
For searching in large database tables we usually use PostgreSQL's fulltext search capabilities. While this works reasonably well for...
This is a presentation from 2019-01-21. Summary We want to move away from jQuery in future projects
Spammers have started abusing other application to send their spam. This works like this: The application has some form that...
When restoring a PostgreSQL dump using pg_restore, you usually add the --clean flag to remove any existing data from...
When building an application that sends e-mails to users, you want to avoid those e-mails from being classified...
The standard way to abort async code is that your function takes a AbortSignal { signal } property. The caller can use...
Suggested Workflow Set the ruby version in .ruby-version to 2.3.5, then perform these steps one by one, fixing errors...
Rails ships with two separate build pipelines: Sprockets ("asset pipeline") and Webpacker. Webpacker has many more moving parts, but allows...
When your code does not behave as expected, you can use a debugger statement ("breakpoint") at any point in your...
When doing Basic Authentication, your browser will send an "Authorization" header. Its value is simply a Base64-encoded representation of...
In ruby you can easily read and write CSVs with the standard CSV library class. On top of this, you...
To restart all tasks monitored by God, don't use god restart. This command is only meant to soft-restart...
Cucumber has an output format that prints step definitions only. You can use this to find unused ones: Temporarily add...
When upgrading Rails versions -- especially major versions -- you will run into a lot of unique issues, depending on the exact...
The Ace editor is a great enhancement when you want users to supply some kind of code (HTML, JavaScript, Ruby...
If your Rubymine does not recognize a file type correctly although you have entered the unmistakeable file extension like material_orders_controller.rb...
We figured out, that ActiveJob Inline might lead to autoloading problems in development. The result was an exception when running...
Occasionally, your designer will hand you designs where elements break the layout's horizontal container width, like navigation buttons of...
Accessing pseudo elements via JavaScript or jQuery is often painful/impossible. However, accessing their styles is fairly simple. Using getComputedStyle
There are two ways to lock a user in devise. Using the lockable module Customizing the user account status validation...
jQuery's removeClass removes the given class string from an element collection. If you want to remove multiple/unknown classes matching...
When you are using lambdas in RSpec to assert certain changes of a call, you know this syntax: expect { playlist.destroy...
Percent Notation We already know that that we can create strings using the percent notation: %(<foo="bar's ton">) is...