我使用这个片段连接到另一个数据库
ActiveRecord::Base.establish_connection....
但我不知道在不需要后如何删除此连接。
我使用这个片段连接到另一个数据库
ActiveRecord::Base.establish_connection....
但我不知道在不需要后如何删除此连接。
你可以打电话remove_connection
old_connection = ActiveRecord::Base.remove_connection
如果您做了类似以下的事情(有作业的地方)
new_connection = ActiveRecord::Base.establish_connection(...)
这可以传递给remove_connection
old_connection = ActiveRecord::Base.remove_connection(new_connection)
您可以在源代码中找到它。
your_connection = ActiveRecord::Base.establish_connection(...)
ActiveRecord::Base.remove_connection(your_connection)
答案确实是remove_connection( klass=self)
。但是,establish_connection(...)
返回的是连接,而不是基类,所以代码应该是:
ActiveRecord::Base.establish_connection(...)
ActiveRecord::Base.remove_connection( ActiveRecord::Base)
为了区分不同的连接(例如,用于处理多个数据库),您可以创建一个子类以使其更容易。这只会断开关联的连接,即使重复调用,也不属于父类。
例如:
class MyDatabase::Base < ActiveRecord::Base
def example_connection_and_disconnection
MyDatabase::Base.establish_connection(...)
MyDatabase::Base.remove_connection( MyDatabase::Base)
end
end
希望这可以帮助其他人。:-)