2011-05-09 6 views
0

레일에서 루비를 처음 사용했습니다. 내가 http://0.0.0.0:3000/courses에 액세스 할 때레일상의 루비에서의 라우팅 문제

resources :courses 
    match '/courses', :to => 'courses#new' 

: 는 내가 명령을

그럼, 내가 편집 routes.rb 파일 '레일 컨트롤러 과정 새로운'을 만들어 사용했다.

액션 '인덱스'CoursesController 발견되지 않는

알 수없는 조치 : 오류가 발생합니다.

나는 뭔가를 놓치고 있다고 생각합니다. 도와주세요

고마워요.

+0

명령 프롬프트에서 rails 폴더로 이동하여 'rake routes'를 실행하여 기존 경로를 볼 수 있습니까? 출력을 여기에 붙여 넣을 수 있습니까? 내 추측은 기본적으로 ID가 작동하도록 '새'입니다. 그러나 아직 레일 3에서 작업하지 않았습니다. – Shaunak

답변

1

자원 라인 : 과정과 같이 교육 과정에 대한 경로를 생성 등등

/courses -> coursescontroller#index 

/courses/:id -> coursescontroller#show 
... 

하고 있습니다. 이것을 '평온한 길'이라고합니다.

'courses.html'형식의 URL을 코스 컨트롤러의 '인덱스'작업으로 보내지 않고 코스 컨트롤러의 '새로운'액션 (매우 비정상적 일 수 있습니다. 길), 당신의 routes.rb에서 첫 번째 라인을 제거하십시오.

당신이 정의한 어떤 경로보고 싶다면

은 당신의 레일 응용 프로그램 디렉토리에서
rake routes 

을한다.

0

대신이를 사용할 수 있습니다

resources :courses, :except => :index 
match '/courses', :to => 'courses#new' 

except 옵션은 기호 나 당신이 자원 경로를 정의하지 않으려는 컨트롤러의 액션의 배열을합니다. 이 경우 index 작업 (/courses/)에 대한 경로를 해제합니다.

다음으로 index 동작에 대해 정의 된 것과 동일한 경로를 정의하지만 CoursesController#new을 가리 킵니다.

0

"자원"줄 앞에 "일치"줄을 넣으십시오.