【プログラミング】 (Ruby on Rails)第11章の統合テストNoMethodError: undefined method `remember_token’ for nil:NilClassの修正方法

Ruby on Railsチュートリアル第11章まで学習が進みました。

この章の冒頭で紹介されているメイラー構築作業でテストエラーが何度も発生していたため、解消方法を記載しておきます。

 

【エラー名称】

NoMethodError: undefined method `remember_token’ for nil:NilClass

 

【改善方法】

Railsチュートリアル第11章のアカウント有効化に関する統合テストにおいて、

【test/integration/users_login_test.rb】内のassigns(:user).remember_tokenに関する問題。

 

assigns(:user)でSessionControllerの@user変数を取れる一方、チュートリアル内のsessions_controller.rbに記述しているcreateに定義されているuserが@userとなっていないために発生した。

このため、SessionController#createで@userへの代入を行っていなかった為nilになってしまい、統合テストでエラーとして検出された。

 

【修正方法】

sessions_controller.rb#createの記述をuserから@userに変更することでテストのパスを確認。

この記事も人気ですよ