Forum: Rails-ES Parametro.update(16, {:valor => :valor + 1 })

Announcement (2017-05-07): www.ruby-forum.com is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see rubyonrails.org/community and ruby-lang.org/en/community for other Rails- und Ruby-related community platforms.
William B. (Guest)
on 2007-06-16 18:37
Hola Muchachos, tengo un problema, por favor me ayudan.

necesito actualizar un modelo, el cual tiene un campo el cual debo
incrementar en 1 la hago asi y no me funciona

Parametro.update(16, {:valor => :valor + 1 }) y asi tampoco

Parametro.update(16, {:valor => ':valor + 1' })

gracias
William B. (Guest)
on 2007-06-16 19:24
William B. wrote:
> Hola Muchachos, tengo un problema, por favor me ayudan.
>
> necesito actualizar un modelo, el cual tiene un campo el cual debo
> incrementar en 1 la hago asi y no me funciona
>
> Parametro.update(16, {:valor => :valor + 1 }) y asi tampoco
>
> Parametro.update(16, {:valor => ':valor + 1' })
>
> gracias

Yo mismo me respondo:

@parametro  = Parametro.find(:first, :conditions => [ "id = 16"])
@parametro.update_attribute(:valor, @parametro.valor + 1)

si hay otra forma de hacerlo mejor me comentan, gracias.

lo que quiero es actualizar el valor de un modelo, incrementando el
valor en 1, y no puede ser un campo auto_increment, ya que ese valor es
variable y no inicia en 1.

gracias
unknown (Guest)
on 2007-06-16 20:01
(Received via mailing list)
> William B. wrote:
> [...]
> Yo mismo me respondo:
>
> @parametro  = Parametro.find(:first, :conditions => [ "id = 16"])
> @parametro.update_attribute(:valor, @parametro.valor + 1)
>
> si hay otra forma de hacerlo mejor me comentan, gracias.

@parametro  = Parametro.find(16)
@parametro.increment!(:valor)

Este está mejor porque si fuese null (nil) increment lo pone a 1.
William B. (Guest)
on 2007-06-16 20:27
unknown wrote:
>> William B. wrote:
>> [...]
>> Yo mismo me respondo:
>>
>> @parametro  = Parametro.find(:first, :conditions => [ "id = 16"])
>> @parametro.update_attribute(:valor, @parametro.valor + 1)
>>
>> si hay otra forma de hacerlo mejor me comentan, gracias.
>
> @parametro  = Parametro.find(16)
> @parametro.increment!(:valor)
>
> Este est� mejor porque si fuese null (nil) increment lo pone a 1.

Que bien, si es mejor, ya reemplace mi codigo.  Gracias
This topic is locked and can not be replied to.