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だよ