railsで実行すると以下のエラーが発生する状況
実行
❯ rails g controller users
You don't have net-smtp installed in your application.
Please add it to your Gemfile and run bundle install
エラー内容:
net-smtpがインストールされていない。
gemfileに加えたうえでbundle installを行ってください。
考えたこと:
①net-smtpの自体はローカルにあるが
newappにうまく伝えられていない。
②
コマンドでrails newを実行作成後に、エラーを理由に
newappを再度作り直すことを避けたい。
そこで以下の作戦を立てました。6系のrailsを使っています。
1
コマンド
rails 6.1.6 new SampleApp --skip-bundle
を最初に実行
2
newappを作成後に、
SampleApp/gemfileで以下の記述を追加
gem 'net-smtp'
gem 'net-imap'
gem 'net-pop'
3
データベースの作成
cd SampleApp
rails db:create
マイグレーションファイルの内容を
データベースに反映させる。
rails db:migrate
gemのファイルで
'puma', '~> 5.0'
ではなく
'puma', '= 5.0'のように =で
固定して、railsのバージョンがアップされていくことを避ける。
結果:
追記します。
5( +今後の改善)
エラー内容:
『net-smtpがインストールされていない、
gemfileに加えたうえでbundle installを行え。』
をデフォルトの状態で解決する方法を考える。
・元々あるnet-smtpをbundle installでnewappに引っ張ってくるのか
・net-smtp自体をその都度、ダウンロードして、引っ張ってくるを取るのか