# File model/model.rb, line 360
    def initialize(dbh, category_id)
        raise "Invalid DBH" if not dbh.kind_of?(DBI::DatabaseHandle)
        raise "Bad Record ID" if dbh.select_one("select * from category where category_id=?", category_id).nil?

        @dbh = dbh
        @id = category_id
        @recipes = ObservableArray.new
        @dbh.select_all("select recipe_id from recipe_category where category_id=?",@id).each do |row|
            @recipes << $replicator.get('recipe', row['recipe_id'])
        end
        @recipes.add_observer {
            # which associations were previously in the DB?
            old_recipes = []
            @dbh.select_all("select recipe_id from recipe_category where category_id=?",@id).each do |row|
                old_recipes << $replicator.get('recipe', row['recipe_id'])
            end

            # add any new ones to the DB
            (@recipes - old_recipes).each do |recipe|
                @dbh.do("insert into recipe_category (category_id,recipe_id) values (?,?)",@id,recipe.id)
                @dbh.commit
            end

            # remove any no longer used from the DB
            (old_recipes - @recipes).each do |recipe|
                @dbh.do("delete from recipe_category where category_id=? and recipe_id=?",@id,recipe.id)
                @dbh.commit
            end
        }
    end