I used to be a fan of the has_finder gem written by Nick Kallen.
Now with Rails 2.1, this functionnality is built-in so you don’t need to install the gem.
The named_scope method allows you to add finders to any model. A code snippet is worth 10000 words :
class Story < ActiveRecord::Base named_scope :hilarious, :conditions => ["type = ?","comedy"] named_scope :popular, :conditions => ["popularity_level > ?", 3] end
Doing this you can chain expressions like this :
funny_stories = @all_stories.hilarious funny_and_popular = @all_stories.hilarious.popular
Maybe you knew it, maybe you didn’t. If you didn’t, now you know it. (I feel very smart about this last sentence. I think I am going to put this in my room somewhere)