1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

ModelにDBのカラムの内容をコメントとして書いてくれるGem「annotate」の紹介

Last updated at Posted at 2025-01-20

はじめに

モデルのカラム情報をパッと確認したいときがあると思います。
私もこのGemを知るまでは毎回クライアントツールでカラム情報を確認するか、railsコンソールなどで確認をしており、手間がかかっていました。
このGemはモデルのカラム情報をModelのmigration時にモデルファイルにコメントとして書き出してくれるGemです。

使い方

Gemfileに以下を記述

gem 'annotate'

下記でインストール

group :development do

  gem 'annotate'
end

以下のコマンドを実行し、annotateの設定ファイルを作成します。

bundle exec rails g annotate:install

lib/tasks/auto_annotate_models.rakeが作成されました。これで設定は完了です。

実際に使ってみる

下記のようなモデルを作成します。

rails g Model Prefecture name:string display_order:integer

migrationを実行。

rails db:migrate

確認すると、Prefectureモデルにスキーマ情報が自動で書き出されます。

# == Schema Information
#
# Table name: prefectures
#
#  id                    :uuid             not null, primary key
#  display_order(並び順) :integer          not null
#  name(都道府県名)      :string           not null
#  created_at            :datetime         not null
#  updated_at            :datetime         not null
#
# Indexes
#
#  index_prefectures_on_name_unique  (name) UNIQUE
#

# 都道府県を管理するモデル
class Prefecture < ApplicationRecord
end

注意点

モデルファイルにコメントを書きたい場合はannotateのコメントと自分が書くコメントに一行空行をいれる必要があるようです。入れない場合は、migration時に毎回差分が出てしまうので手間がかかるのでご注意ください。

# == Schema Information
#
# Table name: prefectures
#
#  id                    :uuid             not null, primary key
#  display_order(並び順) :integer          not null
#  name(都道府県名)      :string           not null
#  created_at            :datetime         not null
#  updated_at            :datetime         not null
#
# Indexes
#
#  index_prefectures_on_name_unique  (name) UNIQUE
#

# 上記のようにannnotateのコメントと自分のコメントの間に空行を入れる
# 都道府県を管理するモデル
class Prefecture < ApplicationRecord
end

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?