2013-06-04 34 views
1

我的網站有不同的語言。每種語言都有其自己的子域。我能夠將用戶正確地重定向到適當的子域和URL路徑。但是,我還沒有找到保存URL參數的方法。我使用Rails 2.3。我現在的重定向是這樣的:使用URL參數重定向到rails中的子域

redirect_to('http://' + I18n.locale.to_s + '.' + request.domain + request.path) 

我如何添加URL參數傳遞到或怎麼能改寫如果有任何保留的URL參數。

回答

1

我解決這樣說:

split_url = request.url.partition(request.domain) 
    redirect_to('http://' + I18n.locale.to_s + '.' + split_url[1] + split_url[2]) 
+1

這可以起作用,但要使代碼與http和https一起使用request.protocol而不是'http://'。 – Mario

0

查看Rails指南http://guides.rubyonrails.org/i18n.html,第2.5章。 您不必手動重新創建URL。

+0

我使用的方法指南中檢測到的區域設置,如果用戶已經在子域。正如你所說,這些網址都是由鐵軌處理的。我的問題是,如果用戶想切換區域設置(例如點擊一個標誌圖標),或者用戶來自不包含子域中的區域設置的鏈接。然後它需要重定向到正確的子域。我的網站之前沒有翻譯過。不知道我剛剛發佈的答案是最好的方式,但它的工作原理。 – user2666194