これは実際にはORMのタイプによって異なります。これを行うための優れた方法は、継承を使用することです。たとえば、database.ymlファイルで複数のデータベースとアダプターを定義できます。ActiveRecordのestablish_connectionメソッドを使用して、これらと簡単に通信できます。
# A typical Active record class
class Account < ActiveRecord::Base
...
end
# A new database connection
class NewConnection < ActiveRecord::Base
self.abstract_class = true
establish_connection "users_database"
end
# A new Active record class using the new connection
class User < NewConnection
...
end
ここでの唯一の欠点は、複数のアクティブレコードデータベースに接続している場合、移行が少し厄介になる可能性があることです。
ORMのミキシング
ORMSの混合は簡単です。たとえば、mongodb(mongoidを使用)の場合、アクティブレコードから継承せず、mongoを使用するモデルに次のものを含めます。
class Vehicle
include Mongoid::Document
field :type
field :name
has_many :drivers
belongs_to :account
end
アクティブなモデルの上に構築されたORMは、非常にうまく連携します。たとえば、mongoidを使用すると、ActiveRecordモデルとの関係を定義できるはずです。これは、複数のデータベースを持つことができるだけでなく、アクティブモデルを介して簡単に通信できることを意味します。