Pues necesito pasar parametros al :action de un form_tag, y no consigo
hacerlo.
Imaginemos que tenemos:
def quierounparametro(parametro)
…
end
Y en una vista:
<%= form_tag :action => ‘quierounparametro’ %>
Como le paso el parámetro que necesita? Encontré esto, pero no sé como
aplicarlo
form_tag( url_for_options = {},
options = {},
*parameters_for_url,
&proc)
Muchas Gracias
Diria que es con :id
<% form_for :user,
:url => { :action => ‘save’, :id => @user } do |f| %>
<%= f.text_field ‘name’ %>
<% f.text_field ‘country’ %>
<%= f.password_field ‘password’ %>
<% end %>
Pero si tengo que coger más de un parametro, un array en :id?
Protos J. wrote:
Diria que es con :id
<% form_for :user,
:url => { :action => ‘save’, :id => @user } do |f| %>
<%= f.text_field ‘name’ %>
<% f.text_field ‘country’ %>
<%= f.password_field ‘password’ %>
<% end %>
Pero si tengo que coger más de un parametro, un array en :id?
Pero eso no me acaba de valer. Mejor expongo que es lo que quiero hacer
a grandes rasgos por si acaso:
En un primer método, es un buscador, extrae por tanto un conjunto de
webs y los almacena en un array. Lo que quiero es que el usuario tenga
la posibilidad de hacer algo con esas webs. Una vez listadas, si el
usuario pulsa un botón, mostrar por ejemplo los links de dichas webs.
Por tanto deberÃa pasarle a otro método el array que contiene las webs
resultantes de la búsqueda… Ahà es donde no sé como :S
Simplemente declara un input del tipo hidden, y pasale como valor tu
array separado por algun caracter, por ejemplo
<%= hidden_field_tag :mi_lista, mi_array.join(’’) %>
y despues dentro en tu action
mi_array = params[:mi_lista].split(’’)
saludos
MuchÃsimas gracias, eso me solucionó el problema, nunca hubiese pensado
en hacer algo asà ^^.
Me extraña que haya que ingeniarselas asà para pasar variables de una
acción a otra, eso deberÃa ser algo más natural. Pensé primero en las
variables de clase, claro, pero me dice que no existe, por lo visto a
cada request se resetea…
Hola chicos, una preguntilla con respecto a esto…,
¿y si lo que quiero mandar no es un array, sino una hash de hashes? ¿La
descomposición y la composición después me la tengo que hacer yo?
Desde un formulario, con sus campos yo mando un parámetro :query que
tiene la forma siguiente:
query[:class][Restaurante][properties][…]
query[:class][Restaurante][relaciones][…]
En el controlador lo recojo como
@query = params[:query].
El resultado de ejecutar este formulario me lleva a una página (donde
imprimo unos restaurantes), pero que están paginados, de manera que hay
un botón “Siguiente”. Pues no sé cómo hacer ese botón siguiente; está
dentro de un formulario, me abro un elemento de tipo hidden pero… no
sé qué poner en él. Intenté con
<%= hidden_field_tag :query, @query.to_s %>
Pero sólo me saca la palabra “class”, que es lo primero que hay en esa
hash…
Me tengo que descomponer la hash de alguna manera, hacer tantos hidden
field_tags como tuviera la original, y luego volverlos a recoger en el
controlador?