Rails|Railsチュートリアル10.1.1~10.5.1|10.2.3で詰まる

流されるまま進む

前回からの続き

その後、大きくハマることもなく
かと言ってしっかり理解しながら進めいてる訳でもなく←
テスト部分に至ってはほぼググッテコピペなんだけども
どうにかココまでやってきました。

そして久々にドハマリましたん

テストが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
test/integration/users_login_test.rb:33:in `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行目にあたる部分がおかしいらしいと言う事は分かった
しかし該当箇所を見てもなんだかよくわからないのであった

無理せずググる

完全自力解決が好ましいけどムリシナイ!!方針なので早速ググります

そしてこちらの回答を読んでいって解決しました

ここ、ちょっと前に変数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を再起動させる!

大げさに言う程の事ではないですね💧
なんだけど、初心者?初学者は結構引っ掛かりやすい罠なんじゃないかなぁ?
私だけかな🐫テヘ