Hello, I have the following situation in a rails application, where A, B and C are models (objects) and are linked in the following way: A :has_many B A :has_many C, :as => :sumtinable B :belongs_to A B :has_many C, :as => :sumtinable C :belongs_to :sumtinable, :polymorphic => true I want to count all the Cs that belongs to A (directly and through B). I came up with a query: select count(*) from C where sumtinable_type=''B'' AND sumtinable_id IN (select id from B where A_id=1) OR sumtinable_type=''A'' AND sumtinable_id=1 The query works and fill my needs but I would like to know if there''s a Rails (efficient) way of doing the same thing? I would like the database to do the work and avoid iteration in Ruby. Regards Geoffroy