はじめに
Rails の gem annotate
は,モデルなどのファイルに,対応するテーブルの構造をコメントの形式で書き込んでくれるもの。config/routes.rb
にもルーティングの情報を書いてくれる。
annotate の紹介はもう何年も前からいくつも記事があるので,省略。
今回,初めて使ってみたところ,エラーが出たので報告する。調べた限りでは,Qiita の過去記事に見当たらなかった。
エラーが出るまで
最新版の README では,Gemfile に
gem 'annotate', require: false
と書くことになっている。
つまり,require
はしない,と。
次に,bundle install
する。
次に,アノテーションの設定ファイルを生成させたいので,
rails generate annotate:install
とした。ところが,以下のようなエラーが出た。
[パス途中省略]/annotate-2.7.2/lib/generators/annotate/templates/auto_annotate_models.rake:37:in `template': uninitialized constant AnnotateModels (NameError)
原因と対策
AnnotateModels
はこのライブラリーの中核的なモジュールぽい。
こいつが uninitialized constant
ってことはつまり,だ。
ライブラリーが require
されていないんである。(そりゃそうだ)
そこで,Gemfile の記述を
gem 'annotate'
に変えたら解決した。
要するに,annotate
コマンドを使うだけなら require
しなくてよいが,generate annotate:install
させるんなら require
が必要,ということらしい。
おまけ
gem 'annotate'
は
group :development do
end
の中に入れておけばよいようだ。