You know that ActiveRecord caches associations so they are not loaded twice for the same object. You also know that...

Instead of this: Image.order('images.created_at DESC') You can write this: Image.order(created_at: :desc) Not only do you not...

It's generally not trivial to change a datetime's seconds, minutes, etc in SQL. Here is how it works...

Today I learned that Ruby on Rails has shipped with a built-in slug generator since Rails 2.2:

makandra dev
github.com

Nested exceptions for Ruby: When you rescue an error and then re-raise your own, you don't have to...

Web applications can be used by multiple users at the same time. A typical application server like Passenger has multiple...

relishapp.com

RSpec 3 has verifying doubles. This breed of mock objects check that any methods being stubbed are present on an...

If you need to log to a file you can use Ruby's Logger class: require 'logger'

If you want to rotate text, you can use CSS transforms in somewhat modern browsers to rotate the container element...

Here's a pretty useful steps that hasn't made it into Spreewald yet. It is best used with the...

This is useful to kill processes like ruby my-script.rb: pkill -f my-script.rb With great power comes great responsibility.

help.github.com

Please don't simply copy line number links from Github. The URL usually contains a branch name like master which...

If you're on Ruby 2.3+ there's a <<~ operator to automatically unindent HEREDOCs: str = <<~MESSAGE Hello Universe!

railscasts.com

See this Railscast. Basically you can simply write views like index.xlsx.erb: ID Name Release Date Price <% @products.each do |product| %> <%= product.id...

Write a // and indent every subsequent line by two spaces. This is great for documenting BEM blocks! // An action button...

When you want to look up a class for a given factory, do it like this: >> FactoryBot.factories.find('admin').build_class...

If you want to sort values from an enumerable into two arrays based on whether they match a certain criteria...

jQuery doesn't store information about event listeners and data values with the element itself. This information is instead stored...

This guide shows how to create an AngularJS application that consumes more and more memory until, eventually, the browser process...

xaprb.com

The linked article explains how to get a database-wide lock without creating table rows: This article explains how I...

nandovieira.com

Postgres 9.4 introduces a new column type: jsonb. json and jsonb columns store data differently, so just compare the two...

When you are using the #selector_for helper in Cucumber steps, as e.g. Spreewald does, the following snippet will save...

Enumerable#count can do three things. With no argument provided, it returns the number of items. With an argument, it...

Array#flatten by default flattens an array recursively. To only flatten the array for e.g. one level, it takes an...