TEngo el siguiente codigo en el controller de Producto:
def show
if params[:codigo]==“1”
@producto = Producto.find(:all, :conditions =>
‘codigo=’+params[:id].to_s)
if ! @producto
@producto = Producto.find(@producto)
else
@producto = Producto.new
end
else
@producto = Producto.find(params[:id])
end
#if params[:cantidad]
@detalle=Detalle.new
@detalle.cantidad = params[:cantidad]
if @detalle.cantidad?
@detalle.p_unitario = @producto.neto_unidad
@detalle.sub_total = (@detalle.cantidad *
@detalle.p_unitario).round
if @detalle.p_unitario > 0
@detalle.sub_total = params[:sub_total] if @detalle.p_unitario
== 0
@detalle.dscto = (params[:descuento].to_f / 100 *
@detalle.sub_total
).round
@detalle.total = @detalle.sub_total - @detalle.dscto
else
@detalle.p_unitario = @producto.neto_unidad
@detalle.sub_total = 0
@detalle.dscto = 0
@detalle.total = 0
end
#end
respond_to do |format|
format.html # show.rhtml
format.xml { render :xml => @producto.to_xml }
format.js # show.rjs
end
end
Cuando params[:codigo]==1 se cae en la linea:
@detalle.p_unitario = @producto.neto_unidad
Y estoy seguro que el producto existe pues ejecute la consulta que
aparece
en el log
SELECT * FROM productos WHERE (codigo=2003500);
en el log tambien dice que en esa linea neto_unidada no esta definido .
aca va parte del log
Processing ProductosController#show (for 128.1.128.2 at 2007-09-11
22:50:30)
[POST]
Session ID: f978f506b97daf2f1b2b8090b4dc7dfb
Parameters: {“codigo”=>“1”, “action”=>“show”, “id”=>“2003500”,
“cantidad”=>“100”, “controller”=>“productos”, “descuento”=>“10”,
“sub_total”=>“1000000”}
e[4;35;1mSQL (0.000000)e[0m e[0mSET NAMES 'UTF8’e[0m
e[4;36;1mUsuario Columns (0.016000)e[0m e[0;1mSHOW FIELDS FROM
usuariose[0m
e[4;35;1mUsuario Load (0.000000)e[0m e[0mSELECT * FROM usuarios
WHERE
(usuarios.id
= 1) LIMIT 1e[0m
e[4;36;1mProducto Load (0.000000)e[0m e[0;1mSELECT * FROM productos
WHERE (codigo=2003500) e[0m
e[4;35;1mDetalle Columns (0.000000)e[0m e[0mSHOW FIELDS FROM
detallese[0m
NoMethodError (undefined method neto_unidad' for #<Array:0x48d8f48>): /app/controllers/productos_controller.rb:28:in
show’
c:/ruby/lib/ruby/gems/1.8/gems/actionpack-1.13.3/lib/action_controller/base.rb:1095:in
send' c:/ruby/lib/ruby/gems/1.8/gems/actionpack-1.13.3/lib/action_controller/base.rb:1095:in
perform_action_without_filters’
gracias