Manejo de listas desplegables grandes


#1

Bueno Muchachos.

mis problemas continuan:

tengo un formulario y uno de los campos lo debo cargar desde una lista
de valores; como esta lista tiene muchos valores yo en java hacia otro
formulario en el cual hacia un filtro a la lista, en este seleccionaba
el valor y lo devolvia al formulario inicial que lo habia invocado a
manera de pantalla emergente. como puedo hacer esto en ruby?

mil gracias por su ayuda tan valiosa.

william


#2

hola William,
Como la lista se genera de una tabla padre de la que estas editando,
debes hacer en el modelo un

belongs_to :tabla_padre_en_singular, :foreign_key => ‘mi_real_id’

y en la vista debes hacer los siguiente:

<%= select “nombre_tabla_en_singular”, “nombre_campo”,
TablaPadre.find_all.collect {|fila| [fila.columna_a_mostrar,fila.id]},
{ :include_blank => true } %>

{ :include_blank => true } ----> esta parte solo si deseas que se pueda
dejar en blanco la seleccion, si no, no lo pones


#3

On Jan 24, 2007, at 10:24 PM, William B. wrote:

tengo un formulario y uno de los campos lo debo cargar desde una lista
de valores; como esta lista tiene muchos valores yo en java hacia otro
formulario en el cual hacia un filtro a la lista, en este seleccionaba
el valor y lo devolvia al formulario inicial que lo habia invocado a
manera de pantalla emergente. como puedo hacer esto en ruby?

En Rails puedes ofrecer autocompletado en el campo de texto:

http://wiki.rubyonrails.org/rails/pages/How+to+use
+text_field_with_auto_complete

Si lo que hay que seleccionar es un modelo, en lugar de una cadena
pelada, se publico hace poco este plugin

http://agilewebdevelopment.com/plugins/model_auto_completer

– fxn


#4

On 25/01/07, Xavier N. removed_email_address@domain.invalid wrote:

On Jan 24, 2007, at 10:24 PM, William B. wrote:

tengo un formulario y uno de los campos lo debo cargar desde una lista
de valores; como esta lista tiene muchos valores yo en java hacia otro
formulario en el cual hacia un filtro a la lista, en este seleccionaba
el valor y lo devolvia al formulario inicial que lo habia invocado a
manera de pantalla emergente. como puedo hacer esto en ruby?

En Rails puedes ofrecer autocompletado en el campo de texto:

Solo un +1 para la solución de Xavier. Es un problema de usabilidad y
el autocompletado es bastante más amigable que un select enorme.


Manuel
http://linkja.com * un agregador de tendencias
http://simplelogica.net
http://simplelogica.net/logicola


#5

Manuel González Noriega wrote:

Solo un +1 para la solución de Xavier. Es un problema de usabilidad y
el autocompletado es bastante más amigable que un select enorme.

Pero el autocompletado permite agregar valores que no estén en la tabla
padre (o sea nuevos). Y como manejas el id foráneo (que es el que
realmente se debe guardar en la tabla hija)?


#6

On Jan 25, 2007, at 12:49 PM, Benjamín Cárdenas Salamandra wrote:

Manuel González Noriega wrote:

Solo un +1 para la solución de Xavier. Es un problema de usabilidad y
el autocompletado es bastante más amigable que un select enorme.

Pero el autocompletado permite agregar valores que no estén en la
tabla
padre (o sea nuevos). Y como manejas el id foráneo (que es el que
realmente se debe guardar en la tabla hija)?

El plugin por defecto no deja hacer tal cosa. Y si el usuario edito,
para que se de cuenta de que ese “valor” no va a ser enviado (que en
realidad significa que el ID oculto es el de la seleccion), al perder
el foco se repone la cadena. Eso se hace con una cache privada por
textfield (en JavaScript).

Si se le dice al plugin que permita ediciones (:allow_free_text =>
true), entonces el contrato es que si el usuario edita el campo, el
ID viajara como la cadena vacia. En ese caso ya es responsabilidad
del controlador saber que hacer.

– fxn


#7

ok, capichi y gracias por la
aclaración


#8

Benjamín Cárdenas Salamandra wrote:

ok, capichi y gracias por la
aclaraci󮊊

Gracias muchachos, me pondre a estudiar.

si la lista la obtengo de un modelo, me imagino que debo utilizar:
http://agilewebdevelopment.com/plugins/model_auto_completer.

te pregunto Benjamin: dime donde trabajas? en una empresa de software?
y trabajan mucho ruby? que tal te parece?

me gustaria que me contaras tu experiencia.

William

removed_email_address@domain.invalid