これが私の状況です。Account というモデルがあります。アカウントは 1 つ以上の契約を持つことができます。問題は、私がレガシー アプリケーションを扱っており、各アカウントの契約が異なるデータベースに保存されていることです。
例:
アカウント 1 の契約は account1_db.contracts にあります。アカウント 2 の契約は account2_db.contracts にあります。
データベース名は、アカウント テーブルに格納されるフィールドです。
これでレールの関連付けを機能させるにはどうすればよいですか?
これは従来の PHP アプリケーションであり、すべてを 1 つのテーブルに格納するように変更することはできません。どうにかして動作させる必要があります。
私はこれを試しましたが、うまくいきませんでした:
has_many :contracts, :conditions => [lambda{ Contract.set_table_name(self.database + '.contracts'); return '1' }]
何か案は?