Non-SQL conditions in finder?

find lets me specify SQL conditions like this:
Product.find :all, :conditions => “price > 100”

where price is a SQL column.

But in my Product model, price is actually a virtual attribute that’s
calculated based on the the prices of its components. Is there a way to
specify virtual attributes as part of a finder condition? Right now my
only
choice is to implement a method “find_all_expensive_products” in Product
that loops through all the products returned by find :all and check for
the
virtual attribute one by one.

Any thoughts?