create or update_attribute method

Dear all

Are there any method to create or update something? (if something exist,
then update, else create....where something is the primary key)

Something like....
if Klass.find_by_something( xxx )
   Klass.update_attribute your_hash
else
  Klass.create your_hash
end

This is similar to the AR dynamic finder
Klass.find_or_create_by_something()..., but I want a
Klass.create_or_update_by_something...Any idea??

Many thanks
Valentino

I don't think so, how about:
Klass.send("find_or_create_by_#{attributes.map{|k,v|
k}.join("_and_")}", *attributes.map{|k,v| v})
WARNING: This is a quick solution and could break because I'm relying
on the fact that the hash will return in the same order for both calls

Andrew Timberlake
http://ramblingsonrails.com

http://MyMvelope.com - The SIMPLE way to manage your savings