annotateを利用してスキーマ情報を自動的にModelに書き出す方法

✏️️ 2019/08/12 👍️2019/08/20 🔗

ctran/annotate_modelsを利用するとModelにスキーマ情報を書き出すことができます。dbのテーブルのスキーマやルーティングを確認する手間を省いてくれます。

# == Schema Info
#
# Table name: line_items
#
#  id                  :integer(11)    not null, primary key
#  quantity            :integer(11)    not null
#  product_id          :integer(11)    not null
#  unit_price          :float
#  order_id            :integer(11)
#

 class LineItem < ActiveRecord::Base
   belongs_to :product
  . . .

インストール

# Gemfile
group :development do
  gem 'annotate'
end
bundle install

使い方

cd /path/to/app
bundle exec annotate

# model, tests, factoriesのみ実行する場合
bundle exec annotate --exclude fixtures

# modelのみ実行する場合
bundle exec annotate --exclude tests,fixtures,factories,serializers

#  routes.rbに注釈をつける場合
bundle exec annotate --routes

db:migrateを実行するたびに自動的にannotateを実行したい場合

設定ファイルを作成します。

 bin/rails g annotate:install

生成されたlib/tasks/auto_annotate_models.rakeを変更します。

'skip_on_db_migrate'        => 'false',

参考

akito
日本のスタートアップで主にRuby on Railsを使ってプロダクト開発をしています。