2013-04-22 49 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