railsチュートリアルの11.3.1をやっていたら、こんなエラーが出ました。
Error: SessionsHelperTest#test_current_user_returns_nil_when_remember_digest_is_wrong: ArgumentError: wrong number of arguments (given 1, expected 2) app/models/user.rb:34:in `authenticated?' app/helpers/sessions_helper.rb:55:in `current_user' test/helpers/sessions_helper_test.rb:17:in `block in <class:SessionsHelperTest>'
直し方を教えていただけると幸いです。
引っかかっているテスト: test "current_user returns nil when remember digest is wrong" do @user.update_attribute(:remember_digest, User.digest(User.new_token)) assert_nil current_user end
user.rbの引っかかってる部分: def authenticated?(remember_token) return false if remember_digest.nil? BCrypt::Password.new(remember_digest).is_password?(remember_token) end def authenticated?(attribute, token) digest = send("#{attribute}_digest") return false if digest.nil? BCrypt::Password.new(digest).is_password?(token) end
これはremember_tokenの方を消してもよいのではないかとも思いましたが、消してもエラーが直らなかったので残しています。
session_helperの引っかかってる部分: def current_user if (user_id = session[:user_id]) @current_user ||= User.find_by(id: user_id) elsif (user_id = cookies.signed[:user_id]) user = User.find_by(id: user_id) if user && user.authenticated?(:remember, cookies[:remember_token]) log_in user @current_user = user end end end
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/08/11 00:19