Ruby 数据库与ActiveRecord的连接太多::Base.build\u连接
我在ActiveRecord中使用多表数据库。我必须在所有型号中设置Ruby 数据库与ActiveRecord的连接太多::Base.build\u连接,ruby,database,activerecord,sinatra,multi-database,Ruby,Database,Activerecord,Sinatra,Multi Database,我在ActiveRecord中使用多表数据库。我必须在所有型号中设置建立\u连接db。但是我想调用库的连接文件。在为所有型号的数据库输入连接数据库时,数据库连接计数过多。我怎样做其他方法 我的项目是一个Ruby on Sinatra。为所有可能的连接构建一个{db\u name=>connection\u instance}的全局哈希,并智能地从模型中检索它们: def get_or_establish_connection db $connections[db] ||= establish
建立\u连接db
。但是我想调用库的连接文件。在为所有型号的数据库输入连接数据库时,数据库连接计数过多。我怎样做其他方法
我的项目是一个Ruby on Sinatra。为所有可能的连接构建一个
{db\u name=>connection\u instance}
的全局哈希,并智能地从模型中检索它们:
def get_or_establish_connection db
$connections[db] ||= establish_connection db
end
这样,您将重用所有已建立的连接
NB我之所以写“global”,是因为如果不了解您的体系结构细节,就无法提出更健壮的建议。在现实生活中,人们会把这个散列作为一个可以从任何地方访问的类变量。为所有可能的连接构建一个
{db\u name=>connection\u instance}
的全局散列,并智能地从模型中检索它们:
def get_or_establish_connection db
$connections[db] ||= establish_connection db
end
这样,您将重用所有已建立的连接
NB我之所以写“global”,是因为如果不了解您的体系结构细节,就无法提出更健壮的建议。在现实生活中,人们会把这个散列作为一个类变量放在任何地方都可以访问的地方。我们在使用多个数据库的项目中所做的是为每个数据库创建一个类,建立连接,并使模型从中继承。这样,每个数据库只创建一个连接
class UsageTable < ActiveRecord::Base
self.abstract_class = true
establish_connection :usage
end
class User < UsageTable
类UsageTableclass UsageTable < ActiveRecord::Base
self.abstract_class = true
establish_connection :usage
end
class User < UsageTable
类UsageTable