コントローラとビューを作成するためrails gすると下記のエラーが起きました。
備忘録としてまとめます。
エラー文抜粋
r.rb:28:in `<class:ScaffoldControllerGenerator>'
10: from /Users/****/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/railties-5.0.7.2/lib/rails/generators/base.rb:168:in `hook_for'
9: from /Users/****/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/railties-5.0.7.2/lib/rails/generators/base.rb:168:in `each'
8: from /Users/****/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/railties-5.0.7.2/lib/rails/generators/base.rb:178:in `block in hook_for'
7: from /Users/****/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/railties-5.0.7.2/lib/rails/generators/base.rb:202:in `class_option'
6: from /Users/****/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/thor-1.0.0/lib/thor/base.rb:304:in `class_option'
5: from /Users/****/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/thor-1.0.0/lib/thor/base.rb:582:in `build_option'
4: from /Users/****/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/thor-1.0.0/lib/thor/base.rb:582:in `new'
3: from /Users/****/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/thor-1.0.0/lib/thor/parser/option.rb:11:in `initialize'
2: from /Users/****/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/thor-1.0.0/lib/thor/parser/argument.rb:24:in `initialize'
1: from /Users/****/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/thor-1.0.0/lib/thor/parser/option.rb:115:in `validate!'
/Users/****/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/thor-1.0.0/lib/thor/parser/option.rb:140:in `validate_default_type!': undefined method `deprecation_warning' for Thor:Class (NoMethodError)
Did you mean? deprecate_constant
参考記事もなくて全く意味がわかりませんでしたが、
聞いたところGemfile.lockの下記の記載が原因らしいです。
Gemfile.lock
thor (1.0.0)
thor (1.0.0)はrails newをした時にデフォルトで作られるため、thorのバージョンを変更します。
Gemfileの最終行に下記を記載します。
Gemfile.
gem 'thor', '0.20.3'
bundle installするために一度Gemfile.lockを削除します。
削除できたらbundle installを実行します。
bundle install後、Gemfile.lockのthorが「thor (0.20.3)」となっていることを確認します。
Gemfile.lock
thor (0.20.3)
確認できたらrails gができるようになっているはずです。
細かい原因が分かってなくて恐縮ですが、以上となります。