【问题标题】:Creating a Ruby gem to Access a Second Database from Multiple Rails Applications创建 Ruby gem 以从多个 Rails 应用程序访问第二个数据库
【发布时间】:2011-10-11 10:52:47
【问题描述】:

我们有一些 Rails 3 网站需要访问通用数据库以进行订单跟踪和履行。

基本上我们希望每个站点都有自己的数据库,并且也能够访问公共数据库。

我认为创建一个 gem 来访问第二个数据库是可行的方法,但我对 Ruby 和 Rails 还很陌生。

以前有人做过类似的事情吗?

关于如何实现这个有什么建议吗?

【问题讨论】:

标签: database ruby-on-rails-3 gem


【解决方案1】:

尝试类似:

# WARNING: untested code
module DatabaseA
  class Connection < ActiveRecord::Base
    self.abstract_class = true
    establish_connection :my_custom_connection
  end

  def const_missing(name)
    model = Class.new(Object.const_get(name))
    model.connection = Connection.connection
    const_set(name, model)
  end
end

那么你应该使用这个模块中的模型:

DatabaseA::User.new

【讨论】:

    【解决方案2】:

    我写了一个 gem 来帮助解决这个问题:https://github.com/karledurante/secondbase

    我们现在将它与 rails 2 和 rails 3 应用程序一起用于生产。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-01-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-07-17
      • 2013-02-27
      相关资源
      最近更新 更多