Martin,
In you subject line you say you are using has_and_belongs_to_many (habtm) and in the body of your post you say you are using through. I would first suggest that you don't confuse these two since they are actually different.
I am going on the assumption that you have created a many-to-many using has_many :through.
So you would have something like this:
class Recipe << ActiveRecord::Base has_many :recipe_ingredients has_may :ingrediants, :through => :recipe_ingredients end
class Ingredient << ActiveRecord::Base has_many :recipe_ingredients has_many :recipes, :through => :recipe_ingredents end
class RecipeIngredient << ActiveRecord::Base belongs_to :recipe belongs_to :ingredient end
I would assume that a RecipeIngredient would have an additional column to store the quantity of the ingredient for the recipe.
Now you question is about adding ingredients to a recipe. Well in this case try to think about it as a simple CRUD operation. In thinking about it this way you would "Create" a new RecipeIngredient and assign it to a recipe and to an ingredient with something along the line of: