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.

Reply via email to