Should be a fairly simple activerecord question.

This should be very clear to me, but for some reason it's not, and I can't seem to find any examples that help me. My models looks like this:

class Product < ActiveRecord::Base   has_many :company_products end

class CompanyProduct < ActiveRecord::Base   belongs_to :product end

How do I find all Product records that have a CompanyProduct.company_id of, say 36?

I suppose I could do a find_all statement with an include, but it seems there should be a much easier, ready-made ActiveRecord solution rather than creating my very own joins. How would that work?

Assuming that "CompanyProduct.company_id" means that you just forgot to mention:

class CompanyProduct < ActiveRecord::Base   belongs_to :product

   belongs_to :company

end

And you can add:

class Company < ActiveRecord::Base    has_many :company_products    has_many :products, :through => :company_products end

Then it's just:

Company.find(36).products

-Rob

Rob Biedenharn http://agileconsultingllc.com Rob@AgileConsultingLLC.com