【发布时间】:2015-07-29 09:10:16
【问题描述】:
我正在开发一个 Rails 应用程序,该应用程序将在不同国家/地区运行单独的实例。国际化处理语言问题,但是当有一些小的逻辑变化时,我不知道如何处理。一个例子是支付方式——在每个国家,不同的选项将显示给具有不同集成的用户。另一个例子是工资——税收和社会保障因国家而异,所以我们需要考虑到这一点。
差异并不大,所以总的来说,我不想为每个国家/地区创建不同的 git 分支,但我可能错了。
我目前正在考虑的解决方案是为每个国家/地区设置不同的环境 - “production_germany”、“production_france”等,并据此加载包含所有必要变量的不同 yml 文件需要这个国家。然后创建一些“管理器”类,该类将决定要加载哪些特殊类以及要在视图上显示哪些内容(无论哪里有差异)。例如,我可以在“salary_calculation/de”中设置德国的工资计算类,在“salary_calculation/fr”中设置法国的工资计算类,然后只加载我需要的。
您的解决方案是什么?
【问题讨论】:
-
我回答之前的一个问题,不同的国家真的需要共享数据吗?你真的期望国家之间的差异有多大?如果没有,那么您可以使用不同的数据库,如果没有,那么您可以将应用程序构建为多租户应用程序(谷歌为“多租户 Rails 应用程序”),告诉我更多信息,我会写更多信息:)
-
您好,感谢您的提问。这与数据库无关,应用程序将位于不同的服务器上,它们不需要共享数据。但根据法规和一些当地设置,应用程序中的某些逻辑需要在不同国家/地区进行更改。问题是如何以干净的方式做到这一点?
标签: ruby-on-rails internationalization