0

编辑 简而言之问题:Rails 中有没有办法(宝石?)将两个相同方案的数据库绑定到一个应用程序,Rails 决定在顶级域上使用哪个数据库?

例如:如果用户输入 example.de,则站点上的数据从名为 de_example_production 的数据库加载,如果是 example.com,则数据从 us_example_production 加载。

详细信息(旧问题):

我有一个为某个特定国家开发的电子商务 Rails 应用程序。现在我正试图将其扩展到另一个国家。

主要要求是它应该是在同一台服务器上运行的同一个应用程序(以便代码更新适用于所有国家/地区),但由于这些国家/地区有不同的数据——城市、商店、产品——我希望它们位于不同的数据库中. 实现这一目标的最佳方法是什么?

作为替代方案,我想继续使用当前数据库,在我已经拥有的模型层次结构之上添加一个国家模型,但在我看来,这种方法会给系统增加很多复杂性和冗余。

你能帮帮我吗?

4

1 回答 1

0

正如 Thomas 所指出的,我正在寻找的范式称为multitenancy。我决定继续使用Apartment gem,因为它完全符合我的要求。

这些专业的 railscast 帮助我实现了: Multitenancy with Scopes 和 Multitenancy with PostgreSQL。

于 2013-04-08T17:32:51.603 回答