Re: validation

Frederick Cheung
Mon, 15 Jun 2009 07:04:27 -0000

On Jun 15, 7:00 am, Le Sa
<rails-mailing-l...-ARtvInVfO7ksV2N9l4h3zg@public.gmane.org>
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/.