Buenas.
Veo que en tu script pone:
¿seguro que el controlador se llama "incidencias"?¿no debería ser
"préstamos"?
Aparte, en component.rhtml no debería ir ir:
<%= render_component :controller => '/prestamos', :action => 'list', :params
=> params %>
porque se está llamando a sí mismo continuamente. Tienes que poner el código
en otro rhtml.
En cuanto a tu segunda duda:
Dices:
La primera línea filtro_estado = params[:filtro_estado] || "0", sino me
equivoco debe de recoger el valor de la selección del combo y si no se
realiza le asigna un 0.
Realmente sólo le asigna 0 si es nulo params[:filtro_estado]. Si está en
blanco, el valor de filtro_estado será una cadena vacía.
La condición sería algo así:
if params[:filtro_estado].blank?
filtro_estado = params[:filtro_estado]
else
filtro_estado = "0"
end
Y lo de que la fecha no sea null, no lo he entendido muy bien. Podrías
explicara los campos que tienes en el html y en la BD y qué es exactamente
lo que quieres que haga?
Un saludo
On 3/5/07, Fernando González Macías wrote:
>> Hola Luis, muchas gracias por contestar.
>>>> Respecto a tú código tengo dos problemas:
>>>> 1) El fichero .rhtml que estoy actualizando con tú código es el
> component.rhtml. Una vez que situo el siguiente código:
>>>>>>
>>>>>>>>>> Me entra en una especie de bucle, listándome continuamente el grid, junto
> con el combo de selección, una y otra vez, hasta que me da un error. ¿No es
> en este fichero donde hay que situar este código?
>>>> 2) El segundo problema es con respecto, al código a introducir en el
> controlador. Quiero filtrar por el estado de un campo fecha, en función de
> que ese campo tenga valor o no, o bien que me muestre todos los registros.
> Por lo tanto defino un combo de selección con préstamos Abiertos, Cerrados y
> Todos. A los préstamos aún no devueltos se le asigna en el campo fecha de
> devolución a NULL. El caso es que no tengo nada claro como definir la
> condición para que el select la incorpore.
>>>>>> Tengo lo siguiente en el controlador:
>>>> def component
>>>> filtro_estado = params[:filtro_estado] || "0"
>> = true if .nil?
>> = Prestamo.scaffold_columns_hash[current_sort(params)].sort_sql
> rescue nil
>> @sort_by = .nil? ? "#{Prestamo.table_name}.#{
> Prestamo.primary_key} asc" : + " " +
> current_sort_direction(params)
>>>> logger.debug("Valor de filtro_estado"+filtro_estado)
>> case filtro_estado
>> when '1'
>> logger.debug("Valor 1")
>>>> condiciones = ["fecha_devolucion = null"]
>> when "2"
>> logger.debug("Valor 2")
>>>> condiciones = ["fecha_devolucion != null"]
>> else
>> logger.debug("Entra en ELSE")
>>>> condiciones = ["fecha_devolucion != ?", '1900/01/01']
>> end
>>>>>>>> , = paginate(:prestamos, :order => @sort_by,
> :per_page => default_per_page, :conditions => condiciones )
>>>> render :action => "component", :layout => false
>> end
>>>>>> Aquí como es evidente tengo varias dudas. La primera línea filtro_estado =
> params[:filtro_estado] || "0", sino me equivoco debe de recoger el valor de
> la selección del combo y si no se realiza le asigna un 0.
>>>> ¿Como puedo establecer que la fecha sea null o no null? Tal como lo he
> puesto no me va.
>>>>> Saludos y gracias…..
>>>>>> Fernando González Macías
>>>>> ------------------------------
>> *De:* [mailto:
> ] *En nombre de *Luis Villegas
> *Enviado el:* viernes, 02 de marzo de 2007 11:44
> *Para:* La lista sobre Ruby On Rails (rubyonrails.com) en castellano
> *Asunto:* Re: [Ror-es] Filtrar con Ajax Scaffold
>>>> yo lo tengo con un combo:
>> en el rhtml
>>
>>> En el controlador:
>> def component
> filtro_estado = params[:filtro_estado] || "(1,2,3,4,5,6,7,8)"
> = true if .nil?
> = Incidencia.scaffold_columns_hash[current_sort(params)].sort_sql
> rescue nil
> @sort_by = .nil? ? "#{Incidencia.table_name}.estado_id asc" :
> + " " + current_sort_direction(params)
> condiciones = ["estado_id in "+filtro_estado]
> , = paginate(:incidencias,
> :order => @sort_by,
> :per_page => default_per_page,
> :conditions => condiciones )
>> render :action => "component", :layout => false
> end
>>> A ver si te sirve
>>> On 3/2/07, *Fernando González Macías*
> wrote:
>> Estoy realizando mi primer programa en RoR y utilizo Ajax Scaffold con el
> generador. Me gustaría implementar algún tipo de filtrado en función de
> algunas condiciones que se estableciera. Bien por el valor obtenido de un
> Combo, o bien por un CheckBox. Imagino que esto hay que implementarlo en el
> layout.
>>>> ¿Alguien podría darme algún ejemplo? Y como la elección realizada modifica
> el subconjunto de registros a visualizar.
>>>> Saludos y gracias…
>>>> Fernando González Macías
>> fgonzalez @ grupojoly.com
>>>>>>> _______________________________________________
> Ror-es mailing list
>>>>>> _______________________________________________
> Ror-es mailing list
>>>>-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.simplelogica.net/pipermail/ror-es/attachments/20070306/0c62d9d6/attachment-0001.htm
Previous message: [Ror-es] Filtrar con Ajax Scaffold