jest wzorzec projektowy co to się nazywa kompozyt i to jest dokładnie to czego szukasz, … a tutaj na prędko powiedzmy (…) to bym zrobil jedna klase abstrakcyjna Product i dwie klasy dziedziczące, jedną zwykła i jedną poskładaną ze zwykłą relacją has_many do sub_produktów, nadpisujące wspólny interfejs
hmmm jak przetłumaczysz sobie to co dostałaś to wychodzi na to ze zapomnialas polaczyc Jewel z JwlProductsPartem i w ogole te Twoje asocjacje wygladaja troche kombinancko, poczytaj o asocjacjach troche, powaznie http://apohllo.pl/guides/association_basics.html bo bez tego to ciezko o cokolwiek …
class Product < ActiveRecord::Base
has_and_belongs_to_many :subproducts, :class_name => 'Product', :join_table => 'jwl_products_part', :foreign_key => 'subproduct_id', :association_foreign_key => 'product_id'
has_and_belongs_to_many :products, :class_name => 'Product', :join_table => 'jwl_products_part', :foreign_key => 'product_id', :association_foreign_key => 'subproduct_id'
end
Ale glowy bym sobie za to nie ucial, pozatym nie wiem czy nie pomieszalem :foreign_key z :association_foreign_key