rails:401
From: yu1@t...
Date: Sun, 02 Oct 2005 13:29:10 +0900
Subject: [rails:401] Re: ActiveRecordで複数のデータベースに接続する方法
gorouです。 ActiveRecord(AR)の継承ではテーブル名も継承されますよ。 > 実際にはBarにはいろいろメソッドを記述したりすることもあるでしょう。なの > で同じデータベースにアクセスするためだけにBarを継承するのは変です(よね? > こんな風に感じるの私だけかな)。変な上に害もあります。そこでクラスに中間 > 層(Foo)を設けて、 > > class Foo < ActiveRecord::Base; end > class Bar < Foo; end > class Baz < Foo; end > Foo.establish_connection(:database => 'foo', ...) この方法だとBarもBazもfoosテーブルを参照します。 変更したい場合は class Bar < Foo self.table_name = 'barz' end とやるのが一番お手軽ですがスマートではありませんね。 そもそもテーブルのコネクション先変更だけのために継承するのは AR的によろしくないと思います。 Foo Bar Bazはdb1に、Hoge Hugaはdb2に接続したいなら AR::Baseを拡張するなりなんなりで クラス名とDB接続先をマッピングする機能を盛り込むのが 良いのではないでしょうか。 -------------------------------------------- http://rails2u.com/ g0rOu <hotchpotch@g...> -- ML: rails@r... 使い方: http://QuickML.com/ Web Site: http://wiki.fdiary.net/rails/ ML Archives: http://www.fdiary.net/ml/rails/
395 2005-10-02 00:56 [hage@p... ] ActiveRecordで複数のデータベースに接続する方法 396 2005-10-02 01:32 ┣[drawn.boy@g... ] 397 2005-10-02 01:42 ┃┗[drawn.boy@g... ] 398 2005-10-02 02:03 ┣[abe@c... ] 399 2005-10-02 02:05 ┃┗[abe@c... ] 400 2005-10-02 03:24 ┃ ┗[drawn.boy@g... ] 402 2005-10-02 18:18 ┃ ┗[hage@p... ] -> 401 2005-10-02 06:29 ┗[yu1@t... ] 403 2005-10-02 18:25 ┗[hage@p... ]