【发布时间】:2017-04-09 07:32:11
【问题描述】:
我有一个带有多个数据库连接的 Rails 实例,它提供两种不同的服务。假设它服务于服务 A 和 服务 B。 服务 A 需要连接到数据库 A' 而服务 B 需要连接到数据库 B '。 A' 和 B' 中的大多数表都是相同的(表名、架构)。例如。数据库 A' 和 B' 都有一个表 User,其架构相同。目前我的用户模型如下:
class User_A < ABase #connects to A'
self.table_name = "user"
def foo
...
end
end
class User_B < BBase #connects to B'
self.table_name = "user"
def foo
...
end
end
在控制器内部,我必须执行以下操作:
if is_A?
user = User_A.find(123)
else
user = User_B.find(123)
end
有没有更好的方法来处理 Rails 中的这种情况,从而最大限度地减少代码重复?
【问题讨论】:
标签: ruby-on-rails ruby multi-tenant multiple-databases