2010-04-26 5 views
0

PagesController 컨트롤러에 error404이라는 작업을 만들었습니다. 다음과 같은 상황이 발생하면 나는이 작업을 표시 할 것 :404 오류 생성

  1. URL에서 컨트롤러는
  2. 존재하지 않는 URL의 행동이 어떻게이 작업을 수행 할 수

존재하지 않는 이유는 무엇입니까?

이 페이지의 지침 (Show a 404 instead of 500 in Rails)을 따르려고했지만 첫 번째 상황에서만 작동하는 것 같습니다.

도움 주셔서 감사합니다. :)

답변

0

컨트롤러의 동작이 존재하지 않고 컨트롤러가 스캐 폴드 생성으로 인한 것이라면 기본적으로 컨트롤러의 '표시'방법으로 이동한다고 생각합니다. 예를 들어

; - http://www.domain.com/controller_name/invalid_action_name

은 여기 "controller_name는"유효 컨트롤러입니다. &

"invalid_action_name"은 (는) 잘못된 작업입니다.

기본적으로 "controller_name"&의 'show'메소드는 "invalid_action_name"을 params [: id]로 간주합니다.

그래서 쇼 방법에 당신은 오류를 구출 할 수 및 "레코드를 찾을 수 없습니다"또는 새로운 방법 이름에 대한 경로를 추가하는 당신이 편집 "오류 404"

으로 유효한 오류 페이지를 표시 할 수 있습니다 /config/routes.rb 다음과 같이

map.resources :controller_name, :collection=>{:show=>:get} 

이 파일을 변경할 때마다 서버를 다시 시작해야합니다.

+0

감사합니다. 나는 RoR에 익숙하지 않고 이해가 쉽지 않다. "show"라는 새로운 작업을 만들었습니다. invalid_action_name을 (를) 치면 액션 "쇼"에 들어 가지 않았습니다. 그냥 내게 .... 알 수없는 작업 invalid_action_name에 대한 작업이 없습니다. 작업 : xxxx, xxxx, xxx 내가 잘못 했습니까? –

+0

routes.rb에 경로를 추가해야합니다. 내 편집 된 답변을 살펴보십시오. – Salil

+0

그것은 나를 위해 작동하지 않습니다. 어쨌든 당신의 도움에 감사드립니다. :) –