Я пробовал несколько методов, найденных при переполнении стека, для подключения к двум базам данных на рельсах два, но ни один из них не работает. Вот что у меня есть на данный момент:
В файле 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», каким оно должно быть.
Любая помощь будет высоко оценена спасибо.