Unsure of how to update values using a constant

Here is my code:


Please note that I've outlined the issue in the link but will add a bit
more information here in terms of processing:

The method is a universal method for approx. 37 models. This means that
37 models will use this method to create and update data that is being
parsed from ncaa.org.

There are 37 constants which contain all of the fields representing that
particular model's table.

When no data is found, the values for those constants are created for
each model's current week. The issue I'm having is when trying to use
the same constant to update data on top of the current week if data
already exists. I thought I would be able to use save or save! but
those methods won't exist with the current way I'm processing the data.

If anyone can help me with the last part of the method after (else)
where I'm trying to update the data, I'd appreciate it.

I've added notes to the link to help.

Why won't model.update_attributes(values) work?

jhaagmans wrote:

Why won't model.update_attributes(values) work?

It will give the following error:

undefined method `update_attributes' for #<Class:0x902444c>

values is a hash

As an example, The first field in the table is rank, so values[field] is
values[:rank] OR

{:compiled_on=>"2009-09-04", :rank=>"1"}:Hash

update expects either an id and a hash of attributes, or a hash of ids
to attributes, ie

update(1, {:name => 'bob'})

update the row with id 1 and sets the name to bob.

the other form assumes you are passing an array of ids, and an array
of hashes, so

update([1,2], [{:name => 'bob'}, {:name => 'alice'}])

update the row with id 1 and sets the name to bob and updates the row
with id 2 and sets the name to alice