我们有几个 Rails 3 网站需要访问公共(public)数据库以跟踪和履行订单。
基本上,我们希望每个站点都有自己的数据库,并且也能够访问公共(public)数据库。
我认为创建一个 gem 来访问第二个数据库是可行的方法,但我对 Ruby 和 Rails 还很陌生。
以前有人做过这样的事情吗?
关于如何实现这个有什么建议吗?
最佳答案
尝试类似的东西:
# 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
关于database - 创建一个 Ruby gem 以从多个 Rails 应用程序访问第二个数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6947289/