繁体   English   中英

在Rails应用程序中修补猴子数据库适配器

[英]Monkey-patching database adapter in Rails app

我正在使用PosgreSQL适配器连接到Vertica数据库,该数据库主要与PostgreSQL兼容,但不支持像client_min_messages这样的选项(尽管不存在于database.yml中,仍然会传递给PGconn.connect )。 我为ActiveRecord::ConnectionAdapters::PostgreSQLAdapter制作了一个快速而又脏的猴子补丁,但问题是我想在延迟加载AR中的所有内容并且在我的补丁之后读取原始文件。

如果我在monkey补丁的顶部添加require 'active_record/connection_adapters/postgresql_adapter' ,则ActiveRecord会尝试建立连接并失败。 是否可以改变这种行为以使猴子补丁工作或者我应该编写一个完整的连接适配器?

您可以将代码挂钩到railties初始化。 包括我的gem multi_config中的示例

module <YourModule>
  # Railtie subclass for the gem/plugin
  class Railtie < Rails::Railtie

    # Railtie initializer method
    initializer '<your_plugin>.active_record' do

      # When active_record is loaded, only then run this.
      ActiveSupport.on_load :active_record do
        # Hook your code here. For .e.g. 
        ActiveRecord::Base.send(:include, <YourPluginModule>)
      end
    end
  end
end

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM