所以我希望能够将一个外部数据库添加到我的config/database.yml
然后从中建模一个表。
这可能吗?我无法弄清楚如何。
“连接到不同模型中的多个数据库
通常通过ActiveRecord::Base.establish_connection
创建连接,并由ActiveRecord::Base.connection
检索。从ActiveRecord::Base
继承的所有类都将使用此连接。但您也可以设置特定于类的连接。例如,如果Course
是ActiveRecord::Base
,但位于不同的数据库中,则可以说Course.establish_connection
和Course
,并且其所有子类都将使用此连接。
通过在ActiveRecord::Base
中保留一个由类索引的哈希值的连接池来实现此功能。如果请求连接,则retrieve_connection方法将上升到类层次结构,直到在连接池中找到连接。 “
答案 0 :(得分:16)
首先,在database.yml中定义连接信息:
my_external_db:
adapter: mysql
username: ...
....
然后,创建模型并将其连接到外部数据库
class MyExternalModel < ActiveRecord::Base
establish_connection(:my_external_db)
set_table_name 'my_external_table'
end
答案 1 :(得分:2)
set_table_name
已删除,因此您应使用:self.table_name