2010/2/15 Nestor Rodriguez <[email protected]>:
> Tienes razón, funciona lo que pasa es que me equivoque al culparle al
> active_record, el problema es que no se como manejar una variable enviada
> por el browser y yo lo evaluó mal, hago algo como esto:
> def index
>   op = params[:op]
>   if op == 1 then
>     @articulos = Articulo.find(:all,:conditions=>"COALESCE(tenedor_id,0) !=
> 1")
>   else
>     @articulos = Articulo.find(:all,:conditions=>"COALESCE(tenedor_id,0) !=
> 1")
>   end if
>
>   respond_to do |format|
>     format.html # index.html.erb
>     format.xml  { render :xml => @articulos }
>   end
>  end

El browser te manda los parámetros como string, por lo tanto deberías
hacer algo así:

def index
  if params[:op] == "1" then
    @articulos = Articulo.find(:all, :conditions =>
"COALESCE(tenedor_id,0) != 1")
  else
    # acá va otro find, en tu ejemplo es el mismo que el anterior
  end

  respond_to do |format|
    format.html
    format.xml  { render :xml => @articulos }
  end
end

Para ver los contenidos de la variable, podés tirar una excepción en
el controlador, por ejemplo:

def index
   raise params.inspect
end

Y podés probar cosas como Articulo.find(:all, :conditions =>
"COALESCE(tenedor_id,0) != 1") desde la consola, corriendo
script/console.

Saludos,

Gastón
_______________________________________________
Ruby mailing list
[email protected]
http://lista.rubyargentina.com.ar/listinfo.cgi/ruby-rubyargentina.com.ar

Responder a