2011-08-16 3 views
1

내 경로 파일에서 조건부 리디렉션을 원합니다.경로에서 조건부 리디렉션

사용자는 자신의 사이트에 대해 더 짧은 URL을 사용할 수 있습니다. 이 짧은 URL을 사용할 수 있지만 긴 URL을 사용하면 항상 짧은 버전으로 리디렉션하고 싶습니다. 예 : 사용자가 fubar.mysite.com으로 이동하지만 fubarsite.com을 사용할 수 있습니다. -> fubar.mysite.com에서 fubarsite.com으로 리디렉션합니다.

나는 사용할 수있는 짧은 URL을 데이터베이스에 저장합니다.

경로에서이 작업을 수행하고 싶지만 가능한지 여부를 알 수 없습니다. 제한 접근법을 시도했지만 블록에서 리디렉션을 수행하는 방법을 알지 못했습니다.

constraints(Redirect) do 
#need to redirect here 
end 

답변

3

많은 논리가 포함되어 있으므로 라우트 파일에서이 작업을 수행하면 안됩니다. 응용 프로그램 컨트롤러에 before_filter을 설정하고 거기에서 확인하고 싶을 수도 있습니다. 더 짧은 URL을 사용할 수 있으면 리디렉션을 수행하십시오. 당신은 그것을하기 위해 당신의 루트 파일에서 모든 종류의 캐치를 필요로 할 것입니다.

+0

지금 내가 어떻게하는지는 알지만 이것을 경로 파일로 옮길 수 있기를 바랬다. 대답을 주셔서 감사합니다 – Tarscher

+1

@ Tarscher 리디렉션은 컨트롤러 앱에 속해 있습니다. 경로 파일은 경로에서 컨트롤러까지의지도 일뿐입니다. IMHO는 리다이렉트를 할 수있는 곳이 바로 컨트롤러입니다. – Fabio