Ruby on rails 如何进行rails外部数据库调用?

Ruby on rails 如何进行rails外部数据库调用?,ruby-on-rails,database,Ruby On Rails,Database,因此,我希望能够向我的config/database.yml中添加一个外部数据库,然后从中创建一个表 这可能吗?我还不知道怎么做 “连接到不同型号的多个数据库 连接通常通过ActiveRecord::Base创建。建立连接并通过ActiveRecord::Base.connection检索。从ActiveRecord::Base继承的所有类都将使用此连接。但您也可以设置特定于类的连接。例如,如果Course是ActiveRecord::Base,但它位于不同的数据库中,您可以说是课程。建立连接和

因此,我希望能够向我的
config/database.yml
中添加一个外部数据库,然后从中创建一个表

这可能吗?我还不知道怎么做

“连接到不同型号的多个数据库

连接通常通过
ActiveRecord::Base创建。建立连接
并通过
ActiveRecord::Base.connection
检索。从
ActiveRecord::Base
继承的所有类都将使用此连接。但您也可以设置特定于类的连接。例如,如果
Course
ActiveRecord::Base
,但它位于不同的数据库中,您可以说是
课程。建立连接
课程
,它的所有子类都将使用此连接


此功能是通过在
ActiveRecord::Base
中保留一个连接池来实现的,该连接池是由类索引的哈希。如果请求连接,则retrieve\u连接方法将沿着类层次结构向上移动,直到在连接池中找到连接为止。“

首先,在database.yml中定义连接信息:

my_external_db:
  adapter: mysql
  username: ...
  ....
然后,创建模型并将其连接到外部数据库

class MyExternalModel < ActiveRecord::Base
  establish_connection(:my_external_db)
  set_table_name 'my_external_table'
end
类MyExternalModel
set\u table\u name
被删除,因此,您应该使用:
self.table\u name

之后我是否必须关闭连接?@Kirby:我想您不想这样做,否则rails必须为每个请求打开一个新连接。在这里,服务器启动时只执行一次。非常感谢!我正在尝试将rails应用程序连接到外部数据库。非常有用。如果使用Heroku,请小心。Heroku丢弃了database.yml文件,因此您必须找到其他地方来定义连接信息。