On Feb 4, 2010, at 10:34 AM, John Merlino wrote:
Hey all,
What if I want to check a column in a table to see if a value exists
and
if it doesn't, then update the existing record with the specified
value
and if it does exist increment by 1 from the previous incrementation
of
the value. And do it using the model (or controller if it's unable
to be
done in the model). Something like this:
def test!
update_attributes :student_number =>
if student_number.array.include?(2001)
Student.student_number.first(:order => "student_number
DESC").student_number + 1
else
2001
end
end
Can this be done?
Now this immediately returns a nil.array error, but what I'm more
concerned about is if it can search the table for a value and then if
exists increment by previous incrementation. Thanks for any response.
Don't do it this way. You're going to run into collisions. What
happens when two people run this method at the same time?
I'm not entirely sure what you're trying to do, but you should use a
database sequence for this to ensure you don't get duplicates.
-philip
--
You received this message because you are subscribed to the Google Groups "Ruby on
Rails: Talk" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/rubyonrails-talk?hl=en.