有两种方法
第一种: 每个model各自连接
# 建立一个数据库链接 example:
ActiveRecord::Base.establish_connection(
adapter: "mysql2",
host: "localhost",
username: "myuser",
password: "mypass",
database: "somedatabase"
)
module DatabaseConnection
def self.included(base)
base.establish_connection(database_config)
end
end
class Company < ActiveRecord
include DatabaseConnection
end
第二种: 创建一个连接类,需要的可以继承这个类
class DatabaseConnection < ActiveRecord
self.abstract_class = true
establish_connection(database_config)
end
class Company < DatabaseConnection
end
tips: self.abstract_class = true
加上这个DatabaseConnection类就变成抽象类,不能实例化, 如果不加上这一句,就会用上rails中的单表继承STI(Single-table inheritance), 即:在database_connections表中的type字段为Company
第二种方法的优势:可以共享链接池,减少数据库连接,降低系统资源的消耗