denke ich, dass das hübscheste Möglichkeit, eine Verbindung zu einer anderen Datenbank mit aktivem Modell herzustellen, erstellt eine Basisklasse für eine externe Datenbank und erbt dann daraus Basis in Ihrem Modell. Diese Methode funktioniert gut mit Schienen 4.2.6 und 5.0.4
Zum Beispiel:
# 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
Und in der Modellklasse:
# in /models/external_db/some_model.rb
class ExternalDB::SomeModel < ExternalDb::Base
# your code
end
Aber Sie externe Datenbank in/config definieren müssen /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
Meinen Sie, dass verschiedene Felder in einem einzelnen Modell tatsächlich aus verschiedenen Datenbanken oder ju stammen dass verschiedene Modelle innerhalb der Anwendung aus verschiedenen Datenbanken stammen? – mikej
verschiedene Modelle von verschiedenen Datenbankservern – gustavgans
@gustavgans - Ich habe Ihre Frage bearbeitet, um sie etwas klarer zu machen, basierend auf Ihrer Antwort auf 'mikej'. –