2013-04-22 26 views
0

我需要爲每個國家(而不僅僅是不同的語言)創建一個不同的Web應用程序。假設該網站列出了該國的保險解決方案。如何在Rails網絡應用上按國家實施版本

例如,在法國打字example.com用戶將需要發送到http://france.example.com和美國的用戶會去http://us.example.com

所有的網站都將具有相同的顯示/佈局,但在網頁上的內容會有所不同如保險和公司在每個國家都不一樣。

我想的是:

  • 在我的後端

    :管理多個「國家版本」上,我可以努力改善功能,佈局等,在一個單一的時間,而不必更新每個版本的代碼。所有國家版本都會以這種方式保持類似的狀態。

  • 在後端:創建一個過濾器,將我在後臺輸入的保險項目「發送」到正確的國家/地區。

這意味着,例如,描述法國保險ALPHA頁面將在法國版(http://france.example.com/alpha_insurance_description),而不是在其他國家的版本僅存在。

我必須實施什麼樣的架構?有沒有Rails寶石可以回答這種問題? (如果不是一些網站描述如何創建這種多國網站)

回答

1

我只是使用geoIP數據(或用戶偏好)來找出哪個國家顯示並有內容存儲在DB(例如保險公司)和國家代碼。無論如何,看作是一家保險公司將會有地址和郵政編碼,這應該非常簡單。這樣,內容和網站語言都可以動態設置。

至於子域名,您可以將CNAME全部添加到您的主站點,並在必要時使用一小段Rack中間件(手動滾動)將請求重定向到正確的子域。之後,該網站會忽略子域本身,並只是動態地服務器內容。或者,您可以在應用程序配置中使用一些代碼,從機架請求中讀取子域,提取國家代碼並將其設置爲配置變量,然後在顯示Dynamica內容時設置使用的國家代碼,設置語言等。

+0

機架中間件聽起來很有趣。但我不知道如何看起來。你可以更具體嗎? – 2013-10-14 11:18:58

+0

沿着這些線路的東西:http://icelab.com.au/articles/useful-heroku-friendly-rewrites-with-rack-rewrite/ – 2013-10-14 11:24:38

+0

隨着我的需求已經改變,增加了一個新的問題:我想單獨'國家版本',但具有相同的URL並按照您的建議動態加載內容:http://stackoverflow.com/questions/24129398/serve-different-content-according-to-country-of-user-rails-4 – Mathieu 2014-06-09 21:31:54