2016-06-08 46 views
-1

我正在处理的应用程序要求我从一个模型中访问多个数据源。我想知道完成它的最好方法是什么。我可以做类似以下的事吗?如何在单个Ruby on Rails模型中访问多个数据源?

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

从第一次观察来看,这似乎是一个非常糟糕的主意。 – jvillian

回答

0

@jvillian说过这是一个超级坏主意。你需要的是两个不同的模型,每个模型都连接到它们各自的数据源,ActiveRecord在默认情况下允许使用。这个部分can be a bit tricky但不会混淆ActiveRecord。

这里的一个大问题是,它更喜欢在连接时缓存模式,并在过程的整个过程中保持这种模式。如果数据库以任何方式有所不同,那么就会出现混乱,此外,如果您不断切换连接,则可能会使事务计划人员陷入混乱,必须考虑哪些模型存在于哪个数据库中用于回滚目的。

相关问题