如何为类中的特定方法连接到不同的DB?

时间:2011-05-03 16:05:08

标签: ruby-on-rails ruby-on-rails-3 activerecord

由于系统管理员,我需要在我们的应用程序中针对从属数据库与生产数据库进行查询。

我可以在类级别使用establish_connection但不想破坏其他类方法。因此想知道,如何为这个特定的类方法创建数据库连接,而不必将我的所有方法都指向从属数据库?

如何在Perl或Php中实现它。

这是一个例子: http://pastie.org/private/0k8xqssjrib94sd8hhjfq

任何帮助表示感谢。

最佳, Adam O

3 个答案:

答案 0 :(得分:4)

答案 1 :(得分:1)

我会像你那样为你的模型添加一个方法:

class Model
  def self.on_slave
    .. connect to slave with establish_connection ..
    yield
    .. connect to production with establish_connection
  end

对于您需要奴隶的每种方法,您可以这样做:

def self.this_operates_on_the_slave
  on_slave do
    .. operate
  end
end

答案 2 :(得分:0)

感谢您的解决方案。我最终选择了续集库。基本上我创建了一个初始化程序'slavedb_connect'类,并在需要时使用此连接来连接从数据库。

我经历了很多尝试并且非常接近。然而,Sequel是一个优雅的解决方案,更符合'Rails / Ruby Way'。

感谢您的帮助/支持。真的很喜欢使用这个网站。