我已经尝试了一些在堆栈溢出中发现的方法来连接到 rails 中的两个数据库,但是它们都没有工作。这是我目前所拥有的:
在 database.yml 中有两个连接设置:
development:
adapter: postgresql
host: localhost
database: blerg
username: postgres
encoding: utf8
production:
blah...
test: &test
blah...
cucumber:
<<: *test
static_api_development:
adapter: postgresql
host: localhost
database: blerg-static-api
username: postgres
encoding: utf8
static_api_production:
blah...
static_api_test:
blah...
然后我在 rails 应用程序中有很多普通模型,还有需要连接到其他数据库的奇怪的特殊模型,这就是我设置它的方式......
在模型文件夹中有一个名为 static_table.rb 的模块,其中包含以下内容:
class StaticTable < ActiveRecord::Base
self.abstract_class = true
establish_connection "static_api_#{Rails.env}"
end
然后需要其他表的特殊模型有这个:
class ContentItem < StaticTable
self.table_name = 'content_items'
end
但是,如果您在控制器中调用 ContentItem.all,它会显示“content_items”表不存在,并且数据库连接显示为“blerg”,而不是应该显示的“blerg-static-api”。
任何帮助将不胜感激谢谢。