2012-11-26 3 views
0

요청의 형식을 유지하는 리디렉션을 설정하려고합니다. 그러나 어떤 경우에는 형식이 지정되어 있지 않으며 그에 대한 설명도 필요합니다. 레일 3 토큰과 일치하는 경로

나는 형식은 요청의 일부가 아닌, 그러나 ...이처럼 설정 처음 있도록 형식이 경로의 일부
match 'v:api/*path', :to => redirect("/%{path}") 

생각했다. 그래서 형식을 지정하면이 값으로 변경하면됩니다.

match 'v:api/*path', :to => redirect("/%{path}.%{format}") 

단점은 형식이 지정되지 않고 형식이 일치하지 않아 오류가 발생하는 경우입니다.

제 질문은 ...이 캐 올올을 만드는 올바른 방법은 무엇입니까?

해당 버전의 버전이 존재하지 않는 버전 번호가 지정된 경우 지정된 버전이없는 루트 경로로 이동해야합니다.

답변

0

그래, 알아 냈어. 미리 경고 해주세요. 추악합니다 ...

match '/v:api/*path', to: redirect { |params, request| 
    if params[:format] 
    "/#{params[:path]}.#{params[:format]}" 
    else 
    "/#{params[:path]}" 
    end 
}