3
1

More than 3 years have passed since last update.

RailsチュートリアルでテストはGREENなのに本番でエラーが発生した件

Last updated at Posted at 2019-12-27

Railsチュートリアル10章を終えてHerokuへデプロイし、自分のテストユーザー登録するぞ~とボタンをぽちーしたら、あぼーんして愕然としたので覚書です。
まだまだRailsへの理解度が低くQiitaに投稿するのも恥ずかしい内容ですが、ご意見・ご感想頂けると幸いです。

■発生したエラー

Ruby on Rails チュートリアル Rails5.1(第4版) 10章を終え、Herokuへデプロイ。

新規ユーザーを登録するため、以下の情報を入力。
・Name:test
・Email:test@test.com
・Password:testtest
・Password confirmation:testtest
Create my accountボタンを押下すると以下のページが表示された。
errorMessage.png

実行時のコンソールログは以下のとおり。
ConsoleLog.png

■確認したこと

・AWSに戻ってrails testコマンドを実行
→GREEN

・既存のテストユーザーのSettingsで情報が登録できるか
→登録できた

・routes.rbに以下の文を追加

routes.rb
post   '/signup',  to: 'users#create'

→テスト:GREEN
 画面上でも登録できました。

■原因

リスト7.26で追加したコードを、リスト8.2で上書きしてしまった。
(何も考えずコピペしてすみませんでした・・・)

■対処法

ユーザー登録でエラーが発生したので、まずnew.html.erbを確認。
リスト10.6の演習でリファクタリングしたので、ここでの作業に問題があったとあたりをつける。
リスト7.26の演習が影響しているところから該当の演習に戻ると、routes.rbに変更を加えており、原因となっていたルートが消えていることを確認。
消えていた一文を追加することで解消。

この解消の仕方だと、Railsチュートリアルという台本ありきの解決方法となっていて、実際の現場でこんな解決の方法があるはずがない。

■この後のアクション

以下2点を調査して記事にしたいです。
・実際のエラーだったとしてどのように解消すればよかったのか。
・なぜテストをGREENで通ってしまったのか。

とりあえず本番Herokuも問題なく動いたのでここまで。

3
1
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
1