1

PosgreSQLアダプターを使用してVerticaデータベースに接続しています。VerticaデータベースはPostgreSQLとほとんど互換性がありますが、client_min_messages(PGconn.connectに存在しないにもかかわらず渡されますdatabase.yml)などのオプションをサポートしていません。のためにすばやく汚いモンキーパッチを作成しましActiveRecord::ConnectionAdapters::PostgreSQLAdapterたが、問題は、AR内のすべてが遅延ロードされ、パッチの後に元のファイルが読み取られると推測することです。

モンキーパッチの上部に追加するrequire 'active_record/connection_adapters/postgresql_adapter'と、ActiveRecordは接続を確立しようとして失敗します。モンキーパッチを機能させるためにこの動作を変更することは可能ですか、それとも本格的な接続アダプターを作成するだけですか?

4

1 に答える 1

4

コードをrailtiesの初期化にフックできます。私のgemmulti_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
于 2012-11-07T11:48:27.653 に答える