On Jun 15, 7:00 am, Le Sa <[email protected]> wrote:
> actually, if it is the same database, then there is no way to happen at
> the same time, right?
>
Unfortunately, not true.

Anything working purely at the ruby level (such as a validation) will
run into race conditions doing this. One of Rails' answers to this is
optimistic locking (described in the active record api docs).

Fred



> I don't know, maybe something like this:
>
> class Tablet < ActiveRecord::Base
>
>   validate :must_have_in_stock
>
>   def must_have_in_stock
>     qnt = Tablet.find(product_id).quantity
>     erros.add(:quantity, 'There is only ' + qnt + ' in stock.')
>         if quantity > qnt
>   end
> end
> --
> Posted viahttp://www.ruby-forum.com/.
--~--~---------~--~----~------------~-------~--~----~
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