だから私はこれがこのように機能する方法を知っています
ActiveRecord::Base.connection_pool.with_connection do |conn|
conn.execute(sql)
end
しかし、私は実際のActiverecordモデルとの接続を使用しようとしているので、
conn.Url.first
そのようなことをする方法はありますか?
だから私はこれがこのように機能する方法を知っています
ActiveRecord::Base.connection_pool.with_connection do |conn|
conn.execute(sql)
end
しかし、私は実際のActiverecordモデルとの接続を使用しようとしているので、
conn.Url.first
そのようなことをする方法はありますか?
これは不可能であることがわかりましたが、with_connectionブロック内では、ActiveRecord呼び出しはRails接続プールからチェックアウトされた接続を使用する必要があります
したがって、この例では
ActiveRecord::Base.connection_pool.with_connection do |conn|
Url.first
end
database.yml:pool設定でRails用に確保されたプールから接続をチェックアウトし、アクティブレコード呼び出しにそれを使用させてから、再度チェックインする必要があります。
ただし、これはRails3以降でのみ機能します...これを可能にするコード変更をここで確認できます
Rails 2.3(旧式)http://apidock.com/rails/v2.3.8/ActiveRecord/ConnectionAdapters/ConnectionPool/with_connection
Rails 3 http://apidock.com/rails/v3.0.0/ActiveRecord/ConnectionAdapters/ConnectionPool/with_connection
この男は、このブログ投稿 http://coderrr.wordpress.com/2009/05/05/activerecords-with_connection-is-now-useful/でパッチについて説明しています。