Actualizando


#1

Hola, estoy intentando actualizar un valor de mi tabla.

@precio=Precio.find_by_sql(“update precios set estado=1 where
id_prod=#{params[:producto]}”)
@precio.save

pero me sale este error:

You have a nil object when you didn’t expect it!
The error occurred while evaluating nil.all_hashes

¿Como puedo altualizar el estado de mi table precios.?


#2

Roland,

sin querer parecer pretencioso, creo que antes de intentar abordar
realizar una aplicación en Rails deberias leer algún libro sobre ello
o investigar algo más, pues creo que estás bastante liado. Te
recomiendo “The Rails Way” de Obie F…

Lo que estás intentando hacer en las dos lineas de código que pones en
este mensaje demuestran que no sabes bien que estás manejando:
Utilizas el método find_by_sql para realizar un update y luego
intentas hacer un save sobre el resultado.

Supongo que lo que intentas hacer aqui seria algo como:

Precio.find_by_id_prod(params[:producto]).update_attribute(:estado, 1)

o bien

@precio = Precio.find_by_id_prod(params[:producto])
@precio.update_attribute(:estado, 1)

o incluso:

@precio = Precio.find(:first, :conditions => { :id_prod =>
params[:producto] })
@precio.estado = 1
@precio.save

Todas estas formas de hacer las cosas se podrian considerar correctas,
y no porque yo haya nacido sabiendo rails, sino porque me he informado
antes. Créeme que es tiempo muy bien invertido, una vez aprendes las
cosas básicas de rails (y esta es una), te mueves con mucha más
soltura y vas mucho más rápido en desarrollar.

Pero son sólo mis 2 centimos claro.

Saludos,

Isaac Feliu


#3

Hace un par de semanas alguien de la lista me dio un buen tirón de
orejas
por meterme con los novatos que preguntan al tuntun (me lo merecía, y
siento
haberlo hecho). Esta vez no voy a decir nada. Simplemente doy un +1 a lo
que
ha dicho Isaac.
Yo tambien pienso que es importante aprender el ABC antes de comenzar un
proyecto

El 22 de febrero de 2009 16:38, Isaac Feliu Pérez
removed_email_address@domain.invalidescribió: