Forum: Rails-ES array como parámetro

Announcement (2017-05-07): www.ruby-forum.com is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see rubyonrails.org/community and ruby-lang.org/en/community for other Rails- und Ruby-related community platforms.
95350322d6aa91c2f05fcc982da29a77?d=identicon&s=25 unknown (Guest)
on 2007-01-31 10:16
(Received via mailing list)
Hola,
No sé si esto que voy a preguntar es una chorrada, pero no sé me ocurre
cómo hacerlo.
Tengo una vista que contiene un formulario. Además tengo un array de datos
que  se construye dinámicamente.
Pero no sé cómo enviarlo en el formulario.
Por ej.
@misdatos=["1","2"]

si intento algo así dentro del formulario,
<input type='hidden' name='misdatos' value=<%=@misdatos%>>

Me envía esto, misdatos="12".

Igual todo esto es una barbaridad, pero estoy algo perdida.
Gracias
E91518f050cb6081186ff461950099e0?d=identicon&s=25 Luis Villegas (Guest)
on 2007-01-31 10:51
(Received via mailing list)
Una solucion cutre
sería
<%i=0%>
en la vista:
<%for dato in @misdatos%>
    <input type='hidden' value='<%=dato%>' name=dato[i]>
    <%i++%>
<%end%>
<input type=''hidden' name='total_datos' value=<%=i%>>

y en el controlador

for num in 0..params[:total_datos].to_i
   puts params[:dato][i.to_s]
end



No sé si funcionará, lo he puesto así sobre la marcha, ¿pero ves la idea?
95350322d6aa91c2f05fcc982da29a77?d=identicon&s=25 unknown (Guest)
on 2007-01-31 11:25
(Received via mailing list)
Es que eso es lo único que se me ocurre, pero cómo tú bien has dicho
me parece cutre. Por eso me decidí a preguntar...
De todas maneras, muchísimas gracias por contestar.
1f2eadfb41362800ebc2cf211b91d0f7?d=identicon&s=25 javier ramirez (Guest)
on 2007-01-31 11:27
(Received via mailing list)
> Tengo una vista que contiene un formulario. Además tengo un array de datos
> que  se construye dinámicamente.Pero no sé cómo enviarlo en el formulario.
> Por ej.@misdatos=["1","2"]
>
> si intento algo así dentro del formulario,
> <input type='hidden' name='misdatos' value=<%=@misdatos%>>
>
>
vamos por partes....

de toda la vida en html en un formulario tú puedes poner varios campos
con el mismo nombre. Por ejemplo:

<input type='hidden' name='misdatos' value='valorPrimero'>

<input type='hidden' name='misdatos' value='valorSegundo'>

Y eso en el lado del servidor se recibe como un array de parámetros (en
concreto se envían los valores separados por comas al servidor)

Para que rails sea capaz de entender que lo que le llega es
efectivamente un campo multivaluado, lo que tenemos que hacer es
simplemente ayudarle un poquito y en el nombre del campo ponerle [].
Cuando rails ve un nombre así, entiende que es un array y lo separa en sus
partes y a ti te lo da como array en el lado del servidor.

@misdatos.each do |campo|
   <%=hidden_field_tag 'misdatos[]',campo %>
end

Con eso deberías poder recibir en el servidor el array sin problemas

saludos,

javier ramírez

--
Estamos de estreno... si necesitas llevar el control de tus gastos
visita http://www.gastosgem.com !!Es gratis!!
95350322d6aa91c2f05fcc982da29a77?d=identicon&s=25 unknown (Guest)
on 2007-01-31 11:54
(Received via mailing list)
Ok, funcionó!!!
Muchísimas gracias
This topic is locked and can not be replied to.