2011-08-16 71 views
1

我想在我的路由文件中執行條件重定向。路由中的條件重定向

用戶可以選擇爲他們的網站設置較短的網址。當這個簡短的網址可用,但使用更長的網址時,我總是希望將它們重定向到較短的版本。例如:用戶去fubar.mysite.com,但fubarsite.com可用 - >從fubar.mysite.com重定向到fubarsite.com。

我將可用的較短url存儲在數據庫中。

我想在路線中這樣做,但不知道這是否可能。我試圖約束的方法,但不知道怎麼做重定向在塊

constraints(Redirect) do 
#need to redirect here 
end 

回答

3

我想是因爲它涉及到很多邏輯的,你不應該在你的路由文件做到這一點。也許你想在你的應用程序控制器中設置一個before_filter並在那裏進行檢查。如果較短的網址可用,然後做重定向。您需要在路線文件中捕捉所有路線來完成此操作。

+0

這就是我現在如何做,但我希望我可以將其移動到路線文件。謝謝你的回答 – Tarscher

+1

@Tarscher重定向屬於你的應用程序的控制器部分,路由文件只是從路徑到控制器的映射。恕我直言,正確的地方做重定向是控制器。 – Fabio