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

        @dbh = dbh
        @id = food_id

        @measures = ObservableArray.new
        @dbh.select_all("select measure_id from food_measures where food_id=?",@id).each do |row|
            @measures << $replicator.get('measure', row['measure_id'])
        end
        @measures.add_observer {
            # which measures were previously in the DB?
            old_measures = Array.new
            @dbh.select_all("select measure_id from food_measures where food_id=?",@id).each do |row|
                old_measures << $replicator.get('measure', row['measure_id'])
            end

            # add any new ones to the DB
            (@measures - old_measures).each do |measure|
                @dbh.do("insert into food_measures (food_id,measure_id) values (?,?)",@id,measure.id)
            end

            # remove any no longer used from the DB
            (old_measures - @measures).each do |measure|
                @dbh.do("delete from food_measures where food_id=? and measure_id=?",@id,measure.id)
            end
        }
    end