DBICのRの件
僕も最近ようやくDBICを触り始めました。まだ手探りな感じですが、とりあえずid:nekokakさんのとこはかなり参考にさせてもらいながら、いろいろ試し中です。(まだ新しいWeb+DBは見てませんすいません)
そんで、表題の件なんですが。
http://d.hatena.ne.jp/nekokak/20061227/1167210571
結局、ResultSetクラスにメソッド生やしちゃうと、全部のSchema(テーブル)でそのメソッドが共有されちゃうことになって、あんまりうれしくないケースもあったりすると思うんですが。。。そんなことないですか?そうですか。
てなわけで、ワタクシとしては
案2:自分でResultSetのクラスを作成する。
かなあ、という結論にいたりました。
んで、テーブルごとに MyApp::Schema::User に対して MyApp::Schema::User::ResultSet って作っておいて、Schemaをロードするクラス(ちなみに DBIC::Schema::Loader 利用)の中で、
my $resultset_class = "$class?::ResultSet"; if ( $resultset_class->use ) { $class->resultset_class($resultset_class); }
こんなふうにするといい感じかなー、と。
まあ、ResultSetクラスの位置はここが適切なのか、やや疑問もないではありませんが。。。