【问题标题】: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