Advie for model relationships

I have 3 models, let's call them Recipe, Fruit and Nut, and I need a
DRY way to set up their relationships.

Fruits and Nuts have different sets of properties
Fruits and Nuts go into a Recipe
A join model would be useful to track how much Fruit or Nut goes into a
Recipe
Different Recipes may use a Nut with the name, but different property
values
I might want to add a Twig or Llama model to my Recipes

Right now I have a separate join models that do pretty much the same
for each of Fruit and Nut, but it's getting really wet (opposite of
DRY). It works just fine, but the code is getting really redundant.

Untill I can hack rails so has_many :through works with polymorphic
associations, what is a good way to do this?

class Recipe < AR::B
  has_many :fruitadditions
  has_many :fruits, :through => :fruitaddition

  has_many :nutadditions
  has_many :nuts, :through => :nutaddition
end

class Fruit < AR::B
  has_many :fruitadditions
  has_many :recipes, :through => :fruitadditions
end

class Nut < AR::B
  has_many :nutadditions
  has_many :recipes, :through => :nutadditions
end

TIA

--Dean

So I thought I would share the solution I came up with.

class Recipe < AR::B
  has_many :fruitadditions, :conditions => [ 'fruit_id IS NOT NULL' ]
  has_many :fruits, :through => :fruitaddition

  has_many :nutadditions, :conditions => [ 'nut_id IS NOT NULL' ]
  has_many :nuts, :through => :nutaddition
end

class Ingredient < ActiveRecord::Base
  belongs_to :recipe

  def some_methods
    # ....
  end
end

class Fruitingredient < Ingredient
  belongs_to :fruit
end

class Fruit < ActiveRecord::Base
  has_many :fruitingredients
  has_many :recipes, :through => :fruitingredients
end

class Twigingredient < Ingredient
  belongs_to :twig
end

class Twig < ActiveRecord::Base
  has_many :twigingredients
  has_many :recipes, :through => :twigingredients
end

So I have a single ingredients table with the FKs for each separate
ingredient table. It seems just a little hack-ey, but works well.

--Dean