annotateとは?
モデルにデータベースのスキーマ構造をannotate(注釈)してくれるGem
テーブルを確認する時にDBに潜る必要がなくなるよ。
Dockerでの使い方
Gemfileのgroup :development doに
gem 'annotate'
を記述します。
docker-compose down でコンテナを削除
docker-compose build でコンテナを作り直し
docker-compose up -dで起動してから次のコマンドをする
docker-compose exec web bundle exec annotate
変わらなかったときは、次のコマンドをする。
docker-compose exec web bundle exec rails g annotate:install
(次回のマイグレーション以降、自動でアノテーションしてくれるコマンド)
もう一度↓をコマンド
docker-compose exec web bundle exec annotate
Annotated (7): app/models/task.rb, test/models/task_test.rb, test/fixtures/tasks.yml, test/fixtures/tasks.yml, app/models/user.rb, test/models/user_test.rb, test/fixtures/users.yml
↑のようにAnnotetedとなっていれば成功していて、次のように
例:app/models/user.rb
# == Schema Information
#
# Table name: users
#
# id :bigint not null, primary key
# admin :boolean default(FALSE)
# email :string(255)
# name :string(255)
# password_digest :string(255)
# remember_digest :string(255)
# created_at :datetime not null
# updated_at :datetime not null
#
# Indexes
#
# index_users_on_email (email) UNIQUE
#
class User < ApplicationRecord
has_many :tasks, dependent: :destroy
attr_accessor :remember_token
before_save { email.downcase! }
validates :name, presence: true, length: {maximum: 15}
VALID_EMAIL_REGEX = /\A[\w+\-.]+@[a-z\d\-]+(\.[a-z\d\-]+)*\.[a-z]+\z/i
validates :email, presence: true, length: {maximum: 100},
format: {with: VALID_EMAIL_REGEX},
uniqueness: {case_sensitive: false}
has_secure_password
validates :password, presence: true, length: {minimum: 5}, allow_nil: true
# == Schema Informationから始まるテーブル情報が記述されていればOKだよ