2011-09-15 27 views
0

我想創建一個重定向參數的路由和動作。Rails有助於創建重定向動作和路由

例如,當用戶訪問:www.mywebsite.com/photographer/flv/:ID/:filename

我希望用戶被重定向到:www.someotherwebsite.com/photographer/flv/:ID/:filename

我試圖用此溶液來完成沒有運氣:

我控制器網址:

def videore 
redirect_to www.whateverwebsite.com + params[:all] 
end 

而且在路線上:

match '/photographer/flv/:ID/:filename' => 'URL#videore' 

回答

1

這應做到:

在你的控制器動作:

def videore 
    redirect_to "http://www.whateverwebsite.com/photographer/flv/#{params[:id]}/#{params[:filename]}" 
end 

而且在路線:

match '/photographer/flv/:id/:filename' => 'url#videore' 

這是假設,當然, '網址' 這個名字您的控制器

+0

這難道不是possiable做出注射? –

+0

據我所知 - 我不完全確定 - 在redirect_to字符串中沒有任何功能可以進行更多的破壞,而不是將相同的字符串手動輸入到URL欄中。如果這是觸及數據庫,這將是一個問題,但redirect_to應該(我認爲)是安全的。 – PlankTon

0

來自Ruby on Rails Guide

match "/stories/:name" => redirect("/posts/%{name}") 

在所有這些情況下,如果你不提供領先的主機 (http://www.example.com),Rails會採取從 當前請求這些細節。

所以重定向到另一個TLD應該像這樣(在你的控制器無需操作):

match '/photographer/flv/:ID/:filename' => redirect("http://www.someotherwebsite.com/photographer/flv/%{ID}/%{filename}") 
+0

你有機會嘗試這個嗎? – emrass