Je pense que la plus jolie façon de se connecter à une autre base de données avec le modèle actif est la création de la classe de base pour la base de données externe, puis hériter de cette base dans votre modèle. Cette méthode fonctionne très bien avec des rails 4.2.6 et 5.0.4
Par exemple:
# in /models/external_db/base.rb
require 'active_record'
class ExternalDb::Base < ActiveRecord::Base
self.abstract_class = true
establish_connection "external_db_#{Rails.env}".to_sym
end
Et dans votre classe modèle:
# in /models/external_db/some_model.rb
class ExternalDB::SomeModel < ExternalDb::Base
# your code
end
Mais vous devez définir la base de données externe/config /database.yml
# in /config/database.yml
external_db_development:
adapter: sqlite3
pool: 5
timeout: 5000
database: db/external_db_development.db
external_db_production:
adapter: sqlite3
pool: 5
timeout: 5000
database: db/external_db_production.db
Voulez-vous dire que différents champs d'un même modèle proviennent en réalité de différentes bases de Est-ce que les différents modèles de l'application proviennent de différentes bases de données? – mikej
différents modèles de différents serveurs de base de données – gustavgans
@gustavgans - J'ai édité votre question pour la rendre un peu plus claire, d'après votre réponse à 'mikej'. –