Use named_scope to add elegant finders to your models

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]

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)