流されるまま進む
その後、大きくハマることもなく かと言ってしっかり理解しながら進めいてる訳でもなく← テスト部分に至ってはほぼググッテコピペなんだけども どうにかココまでやってきました。
そして久々にドハマリましたん
テストがGREENにならない10.2.3
それは10.2.3を進めていた時の事です 下の方のリスト10.23の部分です createアクションに『redirect_back_or user』追加 テストの結果は? RED!
一先ずコピペ
「〇〇を追加」みたいな指示でも そこだけコピペってもダメな事ってあったりしないですか? と言う訳で(?)createアクションを丸々コピペってみました しかしやはりRED はてさて
エラー文を見てみる
ERROR[“test_login_with_remembering”, UsersLoginTest, 0.7639187360000506]
test_login_with_remembering#UsersLoginTest (0.76s)
NoMethodError: NoMethodError: undefined method remember_token' for nil:NilClass</strong>
test/integration/<strong>users_login_test.rb:33:in</strong> block in ‘
33/33: [===========================================] 100% Time: 00:00:00, Time: 00:00:00
Finished in 0.83569s
33 tests, 82 assertions, 0 failures, 1 errors, 0 skips
remember_tokenメソッドがない事と users_login_test.rbの33行目にあたる部分がおかしいらしいと言う事は分かった しかし該当箇所を見てもなんだかよくわからないのであった
無理せずググる
完全自力解決が好ましいけどムリシナイ!!方針なので早速ググります
そしてこちらの回答を読んでいって解決しました [blogcard url=”https://teratail.com/questions/141284”]
ここ、ちょっと前に変数userに「@」を付けるように編集していたと思うんだけど 10.32のリストの内容では「@」が消えてるんですね。 そのせいで「@userを読み込みたいのに@userがないじゃん!」で、エラーになっていた。と。
直した結果こうなって
def create @user = User.find_by(email: params[:session][:email].downcase) if @user && @user.authenticate(params[:session][:password]) log_in @user params[:session][:remember_me] == ‘1’ ? remember(@user) : forget(@user) redirect_back_or @user else flash.now[:danger] = ‘Invalid email/password combination’ render ‘new’ end end
テストもGREENになりました
最近引っかからなくなってきたコト
ちょっと前はイチイチ「??」ってなってたんだけど
最近引っかからなくなってきたことがあります。
Gemを追加したらRails serverを再起動させる!
大げさに言う程の事ではないですね💧 なんだけど、初心者?初学者は結構引っ掛かりやすい罠なんじゃないかなぁ? 私だけかな🐫テヘ