【发布时间】:2013-07-16 14:39:45
【问题描述】:
我已经尝试了一些在堆栈溢出中发现的方法来连接到 rails 2 中的两个数据库,但是它们都没有工作。这是我目前得到的:
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 应用程序中有很多普通模型,还有需要连接到其他数据库的奇怪特殊模型,这就是我的设置方式...
models 文件夹中有一个名为 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”。
任何帮助将不胜感激谢谢。
【问题讨论】:
-
WAGs:缓存的连接详细信息?也许数据库名称应该用双引号括起来?
标签: ruby-on-rails-3 postgresql database-connection multiple-databases