2012-12-18 2 views
0

저는 Railstutorial.org의 튜토리얼을 읽고 테스트를 통과하면서 8 장을 마쳤습니다. 내 문제는 가이드의 코드를 정확히 따르면 로그인 할 수 있지만 을 쓸 수 없다는 것입니다. ~ 로그 아웃.완전히 로그 아웃 할 수 없습니다. - RailsTutorial.org - Chapter 8

"로그 아웃"을 클릭하면 root_path로 리디렉션되지만 여전히 로그인 한 회원입니다.

내 세션 도우미에게이 동작을 추적했다고 생각합니다. 특히 다음과 같은 라인 :

def current_user 
    @current_user ||= User.find_by_remember_token(cookies[:remember_token]) 
    end 
레일 콘솔을 통해

내가 쿠키 것을 확인할 수 있었다 올립니다 [: remember_token]가 전무하지만, 내 사용자의 remember_token도 전무 때문에, find_by_remember_token는 "이봐, 전무 =을 말하고있다 = 전혀! 우리 사용자를 찾았습니다! " 이것을 제외하고는 분명히 바람직한 행동이 아닙니다.

나는 다음에 CURRENT_USER 방법을 변경하여 해결했습니다

def current_user 
    @current_user ||= cookies[:remember_token] && User.find_by_remember_token(cookies[:remember_token]) 
    end 

나는 완전히 동의하고이 가능성이 내 코드에서 오류가 있음을 이해합니다. 프로젝트에서이 시점에서 Michael Hartl의 커밋을 발견하고 파일을 비교하여 불일치를 찾을 수 없습니다. 여기에 무슨 일이 일어날 지에 대한 아이디어가 있습니까?

감사합니다. 당신의

답변

-1

넣어이 ...

컨트롤러 :

def logout 
    reset_session 
    redirect_to :controller => 'classified', :action => 'list' 
end 

하고보기

: 당신이 로그 아웃 링크를 추가해야합니다.

<% else %> 
    <p><%= "Welcome #{session[:user].login}!" -%></p> 
    <p><%= link_to 'Logout', :controller => 'user',:action => 'logout' -%></p> 
<% end %> 
관련 문제