has_many :through でひっぱってくる数を指定する

何がどうなっているのか、おいらも分からないのだけどYO、
ここを参考にしてmodelにぴゅっと加えてみたら、
普段際限なく情報拾ってくるhas_many throughが 指定数だけ取れるようになったんだYO。

class User < ActiveRecord::Base
  has_many :groups,
           :through=>:members,
           :select => 'DISTINCT *' do
           def limit(number)
            find :all, :limit=>number
           end
        end
end

んで、

User.find_by_name(hoge).groups 
#=> group全件取得

User.find_by_name(hoge).groups.limit(3)
#=> group3件取得

User.find_by_name(hoge).groups.limit(10)
#=> group10件取得

もっといろいろ応用できそうだぜ。。。