Unsure of how to update values using a constant

Here is my code:

http://gist.github.com/180875

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

Fred