[英]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.