orange lines and dots connected together.

TIL: The Annotate Gem

Today, while watching a video by CJ Avilla, he used a neat little gem that describes the schema of the models in his project.

At 8:32 (video is cued up below) he installs the Annotate gem and then runs an annotate command.

CJ uses the gem so that he could quickly reference the fields in the model without having to search the schema.rb file.

Testing it out

Add the gem to your project with bundle add annotate and wait for the gem to be installed by Bundler.

Next, run bundle exec annotate --models, command and let the gem do its magic! Each model file gets updated with a section of comments at the top of the file that describes the schema of the model.

Below is an example from a test project I have in my environment.

app > models > post.rb

# == Schema Information
# Table name: posts
#  id         :integer          not null, primary key
#  title      :string
#  content    :text
#  created_at :datetime         not null
#  updated_at :datetime         not null
class Post < ApplicationRecord
  has_one_attached :avatar


The Annotate gem is a neat addition to projects that annotates the schema of each model file in your project. At a glance, you can open one of your model files and reference the schema.

It’s a powerful little gem with some neat features that aren’t covered here. Go check out their GitHub and read the readme file for all of the available options.