I think the best way to connect to another database with an active model is to create a base class for an external database and then inherit from that database in your model. This method works great with rails 4.2.6 and 5.0.4
For example:
# 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
And in your model class:
# in /models/external_db/some_model.rb class ExternalDB::SomeModel < ExternalDb::Base
But you have to define an external database in /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
Adi Jul 08 '17 at 11:10 2017-07-08 11:10
source share