2014-01-23 72 views
0

我使用像這樣的字符串中軌重定向:在控制器我重定向這樣如何使用路徑作爲字符串時獲得redirect_to來更改主機?

path = "/blerg/blergs/blergs/blergs" 

domain = "www.google.com" 

所以:

redirect_to path, :status => :found, :host => domain 

問題是域沒有改變,這是保持與應用程序域相同。在使用字符串作爲路徑時如何重定向主機參數?

我這樣做是爲了避免這種安全漏洞的原因,路徑在它有一些PARAMS太: http://brakemanscanner.org/docs/warning_types/redirect/

+0

做我得到它的權利:1)你要添加的':host'參數(儘管是不需要的,因爲它沒有改變)出於安全考慮。 2)你的':path'參數是一個字符串。 3)你現有的'redirect_to'不相應地包含':host'參數。所以你需要另一種實現'redirect_to'加入':host'參數的方法 –

回答

2

正如你所看到的here,當你使用字符串路徑時,rails使用請求的域名。

一種方式告訴網址你逝去的軌道是在另一個領域,就是設置協議:

 url = "http://#{another_domain_url}" 
    redirect_to url 

如果你想使用散列,你可以移動路徑:host鍵(不測試):

 redirect_to :status => :found, :host => "#{domain}#{path}" 
-1

你可以這樣說:

redirect_to "http://#{domain}#{path}" 
+0

這正是我不想做的,這就是爲什麼我說出來並與原因聯繫起來的原因。 – Smickie

相關問題