ActiveRecordでモデルごとのデータベース接続を最適に処理する方法は?
-
02-07-2019 - |
質問
これを行うための標準的な方法が欲しい。 Googleの検索が不足しています。 ActiveRecordモデルは、アプリケーションの他の部分とは異なるデータベースにマップする必要があります。 database.ymlファイルにも新しい設定を保存したいと思います。
establish_connectionを呼び出す必要があることは理解していますが、どこが明確ではありません。ここに私がこれまでに得たものがありますが、機能しません:
class Foo < ActiveRecord::Base
establish_connection(('foo_' + ENV['RAILS_ENV']).intern)
end
解決
また、次のような異なるデータベースを使用するモデルをサブクラス化することをお勧めします。
class AnotherBase < ActiveRecord::Base
self.abstract_class = true
establish_connection "anotherbase_#{RAILS_ENV}"
end
そしてモデル内
class Foo < AnotherBase
end
同じ別のデータベースにアクセスする後続のモデルを追加する必要がある場合に便利です。
他のヒント
はい。私が正しかった!よりきれいに:
class Foo < ActiveRecord::Base
establish_connection "foo_#{ENV['RAILS_ENV']}"
end
素晴らしい投稿 pragedave.pragprog.com 。
所属していません StackOverflow