Maximum i habtm

Witam.
Mój problem polega na pobraniu rekordów z maksymalną liczbą relacji odnoszących się do innej tabeli. Mianowicie, chciałbym pobrać n rekordów SinglePart, które istnieją w jak największej liczbie w tabeli single_parts_products, połączoną także z tabelą products. Dodam, że każdy Product może mieć dowolną liczbę SinglePart, co umożliwia mu tabela single_parts_products. Dla single_part_products nie istnieje model, czy w takim razie jedynym sensownym wyjściem okazało się stworzenie jego? Czy da się do tego wykorzystać metodę maximum z parametrem :limit?

Model Product posiada relację:

has_and_belongs_to_many :single_parts

Model SinglePart ma relację:

has_and_belongs_to_many :products

Migracja dla SinglePart wygląda tak:

[code]create_table :single_parts do |t|
t.string :name, :limit => 100, :null => false
t.integer :lock_version, :default => 0, :null => false
end

create_table :single_parts_products, :id => false do |t|
  t.integer :product_id, :null => false
  t.integer :single_part_id, :null => false
  t.integer :lock_version, :default => 0, :null => false
end[/code]