database - 创建一个 Ruby gem 以从多个 Rails 应用程序访问第二个数据库

标签 database ruby-on-rails-3 gem

我们有几个 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/

相关文章:

php - 将另一个表中的 InsertLastID 插入到新表中?使用 PDO 准备语句

ruby - Rails 3 - 通过 Controller 中的正则表达式检查字符串/文本是否包含某个单词/字符

ruby - 使用 Rake 为 Gem 创建可执行文件的最佳方式

ruby - Ruby gem 中 version.rb 的好处是什么

ruby - 在 extconf.rb 中需要 boost::dynamic_bitset<>

C# 生成代码在下一行继续

mysql - 用 select 选择哪里?

Java批量插入循环需要时间附加代码吗?

ruby-on-rails - Activeadmin 可按多列排序

ruby-on-rails - 如何在 ActiveRecord 中使用默认的 sql 表达式?