To allow HTTP 304 responses, Rails offers the fresh_when method for controllers. The most common way is to pass...

For Rails models where only one of multiple attributes may be filled out at the same time, there is no...

greg.molnar.io

Greg Molnar has written a neat article about creating a single-file Rails app. This is not meant for production...

joshmcarthur.com

I recently wanted to add a model for address information but also wanted to add a unique index to those...

When changing code in mailers, updating the corresponding mailer preview can be forgotten very easily. Mailer previews can be tested...

Testing file download links in an end-to-end test can be painful, especially with Selenium. The attached download_helpers.rb provides...

While verifying doubles in RSpec is a good default, it is limited in the amount of methods it actually is...

There is a way to use multiple databases in Rails. You may have asked yourself how you're able to...

You can use Unpoly's up.on with a named listener function and immediately unbind this event listener with { once: true...

github.com

ruby-warning adds custom processing for warnings, including the ability to ignore specific warning messages, ignore warnings in specific files/directories...

Due to the way we setup Jasmine tests in our projects, you may run into various errors when Jasmine boots...

Redis.current will be removed without replacement in redis-rb 5.0. Version 4.6.0 adds deprecation warnings for Redis.current and Redis.current=: `Redis.current...

While we are used to run our JavaScript tests on a test page within our Browser, it's also possible...

makandra dev

I recently was in a weird situation where my (Jest/CLI) tests were referencing a function that was no longer part...

RSpec's let allows you to super into "outside" definitions, in parent contexts. Example: describe '#save' do subject { described_class.new(attributes...

makandra dev

To ensure a consistent code style for JavaScript code, we use ESLint. The workflow is similar to integrating rubocop...

This are the steps I needed to do to add esbuild to an application that used the vanilla rails asset...

Building application assets with esbuild is the new way to do it, and it's great, especially in combination with...

Attaching files to a field that is handled by Carrierwave uploaders (or maybe any other attachment solution for Rails) in...

github.com

When Capybara locates elements in the DOM, by default it allows only accessing visible elements -- when you are using a...

Sometimes you need to access a dev server running on localhost from another machine that is not part of the...

RSpec Rails can automatically mix in different behaviors to your tests based on their type tag, for example enabling you...

Jasmine has spyOnProperty(), but it only works if the property is implemented using getter and setter functions. This is a...

TL;DR When using Cache-Control on a Rails application, make sure the Vary: Accept header is set.