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</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を再起動させる!

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

タグ: Railsチュートリアル、参考サイト