gpt4 book ai didi

ruby-on-rails - Rails 应用程序中的猴子修补数据库适配器

转载 作者:太空宇宙 更新时间:2023-11-03 17:56:06 24 4
gpt4 key购买 nike

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

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

最佳答案

您可以将您的代码 Hook 到 railties 初始化。包括来 self 的 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

关于ruby-on-rails - Rails 应用程序中的猴子修补数据库适配器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13268935/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com