If validations failed for a record, and you want to find out if a specific validation failed, you can leverage...
We want to keep a changelog for all gems we maintain. There are some good practices for writing a changelog...
Most forms have a single submit button that will save the record when pressed. Sometimes a form needs additional submit...
Migrating data from a legacy into a new system can be a surprisingly large undertaking. We have done this a...
In a project team for a bigger project people have several roles: Developer: at makandra Project lead: at makandra
At makandra, we've built a few gems over the years. Some of these are quite popular: spreewald (> 1M downloads...
When you receive a ZIP file from a Windows user, umlauts and other non-latin1 characters in filenames may look...
Having a unique selector for an element is useful to later select it from JavaScript or to update a fragment...
Option 1: JSON dump In config/webpack/environment.js you can get inspect environment which includes all webpack config options set for the...
Why secure-only cookies used to be necessary Cookies have an optional secure flag. It tells the browser to not...
The linked article lists a number of techniques that were best practices with ES5, but have better alternatives in modern...
The 90s are calling: they want their tables back. Unfortunately, you need them all for laying out your HTML emails...
When you need to store structured data (like Ruby hashes) in a single database column with ActiveRecord, a simple way...
Authentication is a special part of web applications. On the one hand, it usually is a crucial security mechanism restrict...
RSpec let's you chain a matcher with .or. The expectation will then pass if at least one matcher matches...
There is a kinda secret, yet well supported CSS feature called currentColor. It's like a special CSS variable that...
A matcher is a function that returns an object with a compare key. Usually it is registered with beforeEach...
For outputting a given String in HTML, you mostly want to replace line breaks with or tags.
Sometimes, the IRB prints a warning during boot: irb: warn: can't alias source from irb_source. Explanation
CarrierWave comes with some RSpec matchers which will make testing more comfortable. Let's say you have an Uploader like...
Recent Bundler (1.16.1) started complaining about missing dependencies in the Gemfile. This is due to a stricter handling of specifications...
For applications coming with lots of stylesheets and scripts, asset compilation might take quite long. This can be annoying when...
If the argument list is the same every time: expect(object).to receive(:foo).with('argument').and_return('response 1...
When you find yourself constantly ignoring a RubyMine warning, you can simple disable that warning and de-clutter your editor...