ActiveRecord を SQLObject っぽくを読んだ。言ってたね。くまくまの人が。svn headにはこの機能入ってるの?
入ってないとしても、くまくまの人が既に書いてそうだけど、面白そうなので自前で書いてみた。5分じゃ無理だった。10分掛かった。
ActiveRecord::Base.class_eval do
class << self
def inherited_with_sqlobjish(subclass)
inherited_without_sqlobjish(subclass)
Kernel.class_eval do
define_method(subclass.name) {|*args|
subclass.find(*args)
}
end
end
alias_method :inherited_without_sqlobjish, :inherited
alias_method :inherited, :inherited_with_sqlobjish
end
end
Modelクラス群が定義される前に書かないといけない。config/environment.rbがboot.rbをrequireしたあとぐらいに書いたらちょうど良かった。