ActiveRecordでモデルごとのデータベース接続を最適に処理する方法は?

StackOverflow https://stackoverflow.com/questions/141201

質問

これを行うための標準的な方法が欲しい。 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

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top