我目前正在处理的应用程序要求我从单个模型中访问多个数据源。我想知道实现它的最佳方法是什么。我可以做类似以下的事情吗?
class SomeModel < ActiveRecord::Base
establish_connection :data_source1
# Get some data from data_source1 and store in a instance variable
establish_connection :data_source2
# Get some data from data_source2 and store in a instance variable
end
感谢您的建议。
答案 0 :(得分:0)
正如@jvillian所说,这是一个非常糟糕的主意。你想要的是两个不同的模型,每个模型都连接到它们各自的数据源,默认情况下ActiveRecord允许这样做。
该部分can be a bit tricky但不会混淆ActiveRecord。
这里的一个大问题是它更喜欢在连接时缓存模式,并在过程的生命周期中持久存储。如果数据库以任何方式存在混乱,那么如果你继续切换连接,你可能会完全弄乱事务规划器,它必须考虑哪些模型存在于哪个数据库中以进行回滚。