0
현재 railstutorial.org 서적 10.22에 있습니다. 나는 10.22 목록의 예를 따르고 user.rb 파일에이를 입력하면1 인수 오류 2 개 Railstutorial.org 섹션 10.22
# Returns true if the given token matches the digest.
def authenticated?(attribute, token)
digest = send("#{attribute}_digest")
return false if digest.nil?
BCrypt::Password.new(digest).is_password?(token)
end
내 테스트 스위트는 2 일 인수 오류를 던질 예정이다. 그것은 인증 되더라도? 내가 지시에 따라 2 개 인자에 추가 할 때, 또한
# Returns the current logged-in user (if any).
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?(cookies[:remember_token])
log_in user
@current_user = user
end
end
end
: 만 sessions_helper.rb 파일에 1 개 인자를
# Returns the current logged-in user (if any).
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
그것은 2 1 오류가 발생하고, 않습니다 내 테스트 스위트는 빨간색으로 표시되지만 지침은 녹색이어야한다고 말합니다. 이 책에 오류가 있습니까? 또한 나는 다음과 같이 할 수 user_test.rb 파일을 편집 할 때 :
test "authenticated? should return false for a user with nil digest" do
assert_not @user.authenticated?(:remember, '')
end
번들 간부 레이크 시험은 3 오류가 발생합니다.
'authenticated?'라는 두 가지 버전의 메소드가 있습니다. 하나의 매개 변수를 사용하는 메소드와 두 개의 매개 변수를 사용하는 두 번째 매개 변수가 동일한 파일에 정의되어 있습니다. 메서드가 두 번 정의되면 마지막 메서드가 메서드를 재정의합니다. 내 생각에'authenticated (attribute, token)'은'user.rb' 파일에서'authenticated? (remember_token)'위에 정의되어 있으며, 이것이 바로이 동작의 원인입니다. –
기꺼이 도와 드리겠습니다 :-) 다른 사람들에게 도움이되도록 답변을 추가했습니다. –