Ruby on rails 正在尝试使用ActiveRecord::Base.connection\u pool.with\u connection执行某些操作

Ruby on rails 正在尝试使用ActiveRecord::Base.connection\u pool.with\u connection执行某些操作,ruby-on-rails,activerecord,Ruby On Rails,Activerecord,所以我知道这是怎么回事 ActiveRecord::Base.connection_pool.with_connection do |conn| conn.execute(sql) end 但是我尝试使用与实际Activerecord模型的连接 conn.Url.first 有没有这样的方法?发现这是不可能的,但是在with_连接块中,任何ActiveRecord调用都应该使用从Rails连接池签出的连接 所以在这个例子中 ActiveRecord::Base.connection_p

所以我知道这是怎么回事

ActiveRecord::Base.connection_pool.with_connection do |conn|
   conn.execute(sql)
end
但是我尝试使用与实际Activerecord模型的连接

conn.Url.first

有没有这样的方法?

发现这是不可能的,但是在with_连接块中,任何ActiveRecord调用都应该使用从Rails连接池签出的连接

所以在这个例子中

ActiveRecord::Base.connection_pool.with_connection do |conn|
    Url.first
end
它应该从数据库中为Rails预留的池中签出连接。yml:pool setting,让您的活动记录调用使用它,然后将其签回

但是,这只适用于rails 3+。。。您可以在这里看到使这成为可能的代码更改

轨道2.3(旧式)

轨道3

这家伙在这篇博文中解释了补丁