Hola!. A ver si se puede hacer esto. He conseguido añadir campos
mediante archivos .rhtml. Tengo un radio dentro de un div que hace lo
siguiente:
<%= radio_button_tag(“radio_tecnologia_id”,“radio_tecnologia_id”,checked
= false) %>Añadir tecnología
<%= observe_field(‘radio_tecnologia_id’,
:frequency => 0.5,
:update => :tecnologia_div,
:url => {:action =>:segunda_tecnologia })
%>
Cuando se pulsa el radio se sustituye el div tecnologia_div por el
contenido de segunda_tecnologia.rhtml:
<%= select_tag(‘tecnologia_id2’ , options_for_select(
Tecnologia.find_all.collect {|c| [ c.tecnologia, c.id ] }<<["",""],"") )
%>
Aparece un nuevo radio que al pulsarse llama a tercera_tecnologia.rhtml
que ya sólo contiene:
<%= select_tag(‘tecnologia_id3’ , options_for_select(
Tecnologia.find_all.collect {|c| [ c.tecnologia, c.id ] }<<["",""],"") )
%>
Esto está muy bien si sólo necesito añadir 3 tecnologias. Pero me
gustarÃa hacerlo recursivo, de forma que se fuesen añadiendo select cada
vez que pulsase el radio. Esto plantea los siguientes problemas:
·1- Cada select tiene que tener una id distinta. Asà que necesito una
variable que se añada al final de tecnologia_id. Ej
“tecnologia_id”+$cont_tecno.to_s
·2- Cada vez que se añada código tengo que meter una nueva capa, y un
nuevo radio. Todo esto se maneja igual que antes, añadiendo al final del
nombre un contador.
·3- El contador se tiene que incrementarse cada vez que se añada un
select.
·4- (Aquà todavÃa no he entrado) El controlador tiene que tener un bucle
que recorra todos los select para poder hacer la búsqueda.
Entonces he pensando en eso, en crearme una variable e ir
incrementandola, pero no he conseguido que funcione, sólo me ejecuta la
primera vez, luego se queda pulsado el radio (osea que no me cambia el
div por el .rhtml)
Bueno después de esta parrafada, a alguien se le ocurre que estoy
haciendo mal, o si hay alguna forma más sencilla??.
Un saludo y gracias de antemano.