2014-07-25 3 views
-1

현재 튜토리얼을 따라 레일즈 4로 첫 번째 앱을 작성하고 있습니다.레일 4 : 경로 일치, ID를 찾을 수 없습니다.

ressources :users 
get 'profile' => 'users#show' 

문제는 내 컨트롤러에 있습니다 거의 (컨트롤러, 뷰 & 모델) 그래서 내가했다, 내가 '사용자 # 쇼'에,/프로필과 같은 경로에 맞게 원하는 사용자 부분을 마치면 : 내가 URL/프로필에 도착했을 때, 나는이 오류

있어

def show 
    @user = User.find(params[:id]) 
end 

ID가없는 사용자를 찾을 수 없습니다

나는 가이드를 읽었고 params는 지나쳤다 고 생각했지만 그렇게 보이지는 않습니다. 그것은 어리석은 실수 여야합니다.하지만 찾지는 못합니다.

감사합니다.

답변

3

는이 같은 URL의 ID 자리를 지정해야합니다

GET '프로필/: ID'=> '사용자 # 쇼'지금

당신이 좋아하는 URL을 호출 할 수 있습니다

"프로필/12"

당신은에 액세스 할 수 있습니다 그것은 당신의 컨트롤러에

PARAMS 같이 : ID]

내가 내 자신을 발견했습니다 여기에 좋아 http://guides.rubyonrails.org/routing.html

+0

하지'@params [: ID]. 철자' – Iceman

+1

죄송 미스 내가 원하는 아니 정확히 –

+0

을하지만, 나는 이제 나의 문제 설명이 조금 짧았다는 것을 깨닫는다! – Nikkolasg

0

라우팅에있는 문서를 확인하십시오. 실제로 그것은 약간 어리 석다. 나는이 튜토리얼을 수행 한 이후로 각 요청에 서명 된 사용자를 찾기 위해 보낸 remember_token과 함께 SessionController를 구현했다. 즉, 그것은 다음과 같습니다, 그래서 내 사용자 컨트롤러에서 변경하는 데 필요한 내용은 다음과 같습니다

def show 
    if params[:id] 
     @user = User.find(params[:id] 
    else 
     @user = current_user # method from session helper from tutorial 
    end 
end 

을 그래서 지금은 로그인 한 사용자 A에 대한,/프로필 입력 할 때, 그것은 자신의 프로필 &로 리디렉션 및 것입니다 우리가 프로필 입력 할 때/4, 우리는 (다음 대답처럼 추가하여 ID 4 사용자의 프로필을 볼 것입니다 :

get 'profile/:id' => 'users#show' 
관련 문제