2010-06-30 6 views

답변

1

당신은 ActionController를 구출 할 수 있습니다 : CanCan에서 application_controller의 RoutingError와 같이 승인되지 않은 액세스를 제안했습니다.

class ApplicationController < ActionController::Base 

    (...) 
    # Reditect to a default route when user inputs a wrong one 
    rescue_from ActionController::RoutingError do |exception| 
    flash[:error] = "There is no such route" 
    redirect_to root_url 
    end 

end 
+0

(...) 의미가 무엇인지는 모르지만 방법은 작동합니다. – s84

+0

경로 인식에 실패하면 레일스는 해당 예외를 사용합니다. 여기에서는 레일스가 기본 경로 오류 메시지를 표시하는 대신 해당 예외를 중지하고 사용자를 다른 곳으로 데려갑니다. Mr Ryan Bates가 저보다 실례가 있습니다. http://railscasts.com/episodes/53-handling-exceptions – Oinak

5

기본 루트를 추가하고 모든 경로를 잡을 수 있습니다. 예를함으로써

오타 소스 코드에서 추출 : 컨트롤러에서

map.connect '*from', :controller => 'articles', :action => 'redirect' 

당신이 PARAMS이 [:에서]를하는 당신의 URL의 모든 PARAMS의 배열

+0

위대한 것처럼 보이지만 모두 잡을 수 있습니다. 모든 오타가 루트 또는 일부 기본 URL – s84

+1

으로 리디렉션됩니다. catch-all 경로를 사용하여 특정 작업에 연결하고 'redirect_to'라고하는 작업 내부에 연결할 수 있습니다. 또는 사용자가 보길 원하는 작업에 직접 catch-all을 연결합니다. – averell

+1

또한 경로 파일의 끝에 넣어야합니다. –

관련 문제