在Rails中

时间:2015-06-29 15:48:02

标签: ruby ruby-on-rails-4

我有一个在两个不同国家/地区运行的应用程序。让我们说美国和巴西。 我有一个用户模型连接到美国或巴西,取决于通过调用传递的参数:

User.establish_connection("Brazil_DB") User.establish_connection("US_DB")

我面临的问题是,如果美国用户来自巴西用户ActiveRecord会话中途丢弃我的巴西连接并连接到美国数据库。

有没有办法在ActiveRecord中管理这种情况?

1 个答案:

答案 0 :(得分:1)

您确实应该在相关表格上有一个带有国籍标志的数据库,或者在不同的数据中心部署两个不同的应用程序。这种事情将会是一件非常麻烦的事。

ActiveRecord可以处理在不同数据库中使用不同的表,但是它无法理解如何同时处理多个表中的一个表。您需要一个扩展来管理它。

当您执行以下操作时,问题会变得严重:

 Model.find(params[:id])

您应该使用哪种连接?除非你有其他背景,否则答案是“我不知道。”

听起来您应该使用不同的database.yml文件部署应用程序的两个实例。