So I found it out by myself. It is actually a pretty simple but powerful concept. It has to do with code reuse as in the example below. Basically, the idea is to extract common and / or context specific chunks of code in order to clean up the models and avoid them getting too fat and messy. As an example, I'll put one well known pattern, the taggable pattern: # app/models/product.rb class Product