Hola Luis, muchas gracias por contestar.
Respecto a tú código tengo dos problemas:
-
El fichero .rhtml que estoy actualizando con tú código es el
component.rhtml. Una vez que situo el siguiente código:
<%= render_component :controller => '/prestamos', :action =>
‘list’, :params => params %>
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?
-
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"
@show_wrapper = true if @show_wrapper.nil?
@sort_sql =
Prestamo.scaffold_columns_hash[current_sort(params)].sort_sql rescue nil
@sort_by = @sort_sql.nil? ?
“#{Prestamo.table_name}.#{Prestamo.primary_key} asc” : @sort_sql + " "
-
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
@paginator, @prestamos = 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: [email protected]
[mailto:[email protected]] 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
Incidencias
estado:
Abiertas
Cerradas
Todas
<%= render_component :controller => '/incidencias', :action =>
'list', :params => params %>
En el controlador:
def component
filtro_estado = params[:filtro_estado] || “(1,2,3,4,5,6,7,8)”
@show_wrapper = true if @show_wrapper.nil?
@sort_sql =
Incidencia.scaffold_columns_hash[current_sort(params)].sort_sql rescue
nil
@sort_by = @sort_sql.nil? ? “#{Incidencia.table_name}.estado_id asc” :
@sort_sql + " " + current_sort_direction(params)
condiciones = ["estado_id in "+filtro_estado]
@paginator, @incidencias = 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 [email protected] 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