我使用此代码段连接到另一个数据库
ActiveRecord::Base.establish_connection....
但我不知道如何在不需要之后删除此连接。
答案 0 :(得分:8)
您可以致电remove_connection
old_connection = ActiveRecord::Base.remove_connection
如果您已完成以下(其中有作业)
new_connection = ActiveRecord::Base.establish_connection(...)
这可以传递给remove_connection
old_connection = ActiveRecord::Base.remove_connection(new_connection)
您可以在the source code找到它。
答案 1 :(得分:2)
your_connection = ActiveRecord::Base.establish_connection(...)
ActiveRecord::Base.remove_connection(your_connection)
答案 2 :(得分:0)
答案确实是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
希望这可以帮助其他人。 : - )