I have a table of companies and a join table forming the relationship
between a list of possible services they can provide.

Working from a basic understanding of OOP I assumed that there should be
a series of Serviceprovider child objects of the company class.

Company < ActiveRecord::Base
has_belongs_to_many :services
end

Serviceprovidertype1 < Company

Serviceprovidertype2 < Company

These child classes have corresponding child controllers

Serviceprovidertype1Controller < CompanyController

in the parent I have a method

protected
list_by_service(service)
Company.find_by_sql(.. + service + ...)
end

and in the child Serviceprovidertype1Controller

list
list_by_service('Servicetype')
end

but it only seems to work if I make the method in the parent a class
method ie

Company.list_by_service(service)

I don't understand why the child just doesn't inherit the parent method,

and why a class method should - I've read it's used when you want it
to apply the same to all object instances ie

count_the_number of companies

Can anyone explain if I've misunderstood rails, is my approach
using inheritance in this manner, inappropriate ?

_tony