ActiveRecord :: Base.connection vs ActiveRecord :: Base.establish_connection

时间:2014-09-12 09:00:10

标签: ruby-on-rails activerecord

ActiveRecord::Base.connectionActiveRecord::Base.establish_connection之间的区别是什么?

2 个答案:

答案 0 :(得分:1)

ActiveRecord::Base.connection - 返回当前连接

ActiveRecord::Base.establish_connection - 设置连接

答案 1 :(得分:0)

ActiveRecord::Base.establish_connection负责使用传入的选项哈希为数据库建立新的连接池。这决定了ActiveRecord::Base.connection将创建的连接。

另一方面,

ActiveRecord::Base.connection将尝试重用当前线程中当前定义的连接池中的连接,如果它找不到,将建立一个新的之一。

通常,如果需要获取数据库的连接实例,请使用ActiveRecord::Base.connection。如果您需要更改要连接的数据库或任何数据库连接设置,请先致电ActiveRecord::Base.establish_connection,然后任何需要连接的呼叫都将使用这些新设置。