При выполнении этого из сценария тестирования можно использовать Теста::* модули, которые получают вывод для Вас. Я склонен любить Тест:: Вывод .
Это изменит соединение с базой данных для одного объекта модели.
$config = YAML.load_file(File.join(File.dirname(__FILE__),
'../config/database.yml'))
class ModelWithDifferentConnection < ActiveRecord::Base
establish_connection $config['connection_name_from_database_yml']
end
Если вы используете тот же сервер, но только другой файл базы данных, тогда вы можете сделать что-то вроде этого.
class ModelWithDifferentConnection < ActiveRecord::Base
# Lives in the CURRICULUM database
def self.table_name
"database.table"
end
end
Я попробовал ur Sample, но все еще получаю ошибку !!
superclass mismatch for class MysqlAdapter
Думаю, проблема в моем файле database.yml
. Пожалуйста, проверьте этот файл
database_mysql:
adapter: mysql
database: project
host: localhost
username: root
password: root
port: 3306
development:
adapter: postgresql
database: codex
host: localhost
username: postgres
password: root
port: 5432
test:
adapter: postgresql
database: codex
host: localhost
username: postgres
password: root
port: 5432
production:
adapter: postgresql
database: codex
host: localhost
username: postgres
password: root
port: 5432
i запускать дворнягу только в режиме разработки.
вот мой суперкласс модели
$config = YAML.load_file(File.join(File.dirname(__FILE__),
'../../config/database.yml'))
class MasterDatabase < ActiveRecord::Base
self.abstract_class = true
establish_connection $config['database_mysql']
end
Пожалуйста, поправьте меня ..
Я не знаю об active_delegate, но недавно мне приходилось обращаться к различным базам данных для рабочих приложений, и ничего не подходило к тому, что я хотел. Итак, я написал кое-что для себя, как мы говорим, это работает в производственных приложениях.
Фиксированная ссылка connection_ninja