Tengo un formulario que he creado
así:<%= start_form_tag :action => ‘update’ %>
y unos campos de texto, en el controlador cómo puedo recorger los
valores del formulario para que los grabe?
Si me podeis poner un ejemplo de cómo recoger el valor de un input y
cómo grabarlo en su tabla correspondiente Gracias
En esencia:
en el controlador pon :
campo_a_recuperar = params[:nombre_del_input]
y para guardarlo en la bbdd:
objeto_a_guardar = Nombre_de_tabla.new
objeto_a_guardar.campo_de_la_fila = campo_a_recuperar
objeto_a_guardar.save
Luis V.
escribió:
objeto_a_guardar.campo_de_la_fila = campo_a_recuperar
objeto_a_guardar.save
Ror-es mailing list
[email protected]
http://lists.simplelogica.net/mailman/listinfo/ror-es
Aha, apuntado, y si quiero hace un update qué se usa, update_attribute o
update_attributes, no? el mecanismo sería el mismo, primero encontrar el
item en la base de datos y luego actualizarlo
Para actualizar, la lógica es más o menos asÃ:
o = Objeto.find(1) #o la clave primaria del objeto que quieras
actualizar
o.campo1 = “nuevo valor del campo”
o.update
Luis V.
escribió:
> objeto_a_guardar = Nombre_de_tabla.new >
Ror-es mailing list
[email protected]
http://lists.simplelogica.net/mailman/listinfo/ror-es
Aha, perfecto, y para recoger todos las variables del formulario? porque
éstos han sido un input en concreto, pero para recoger todo? qué se pone
en el params?
Luis V.
escribió:
y en el controlador:
o = Objeto.new(params[:objeto])
que te crea un objeto con todos los valores que tengas definidos en el
objeto de la bbdd
Muchas gracias, éso me va a venir muy bien.
He hecho una prueba con el update:
@pagina = Pagina.find(@params[:id])
@titulo_pagina=params[:titulo]
@pagina.pagina=@titulo_pagina
@pagina.update
Lo graba pero me ha grabado ésto: — !map:HashWithIndifferentAccess ,
igual estoy recogiendo mal el nombre del input:
<%= text_field “titulo”, “titulo”, “size”=>20, “maxlength”=>20,
“value”=>@pagina.titulo %>
pues en el rhtml pones todos tus inputs con los nombres asÃ:
<%=text_field :objeto, :campo1%>
<%=text_field :objeto, :campo2%>
<%=text_field :objeto, :campo3%>
eso te creará un html asÃ:
y en el controlador:
o = Objeto.new(params[:objeto])
que te crea un objeto con todos los valores que tengas definidos en el
objeto de la bbdd
Luis V.
escribió:
> <%=text_field :objeto, :campo3%> > que te crea un objeto con todos los valores que tengas definidos @pagina.pagina=@titulo _pagina http://lists.simplelogica.net/mailman/listinfo/ror-es
Ror-es mailing list
[email protected]
http://lists.simplelogica.net/mailman/listinfo/ror-es
Muchas gracias por todo, me ha servido mucho
On 3/12/07, Miguel Angel Calleja Lázaro [email protected] wrote:
eso te creará un html asÃ:
objeto de la bbddLo graba pero me ha grabado ésto: — !map:HashWithIndifferentAccess ,
igual estoy recogiendo mal el nombre del input:
<%= text_field “titulo”, “titulo”, “size”=>20, “maxlength”=>20,
“value”=>@pagina.titulo %>
Ror-es mailing list
[email protected]
http://lists.simplelogica.net/mailman/listinfo/ror-es
Eso te genera un input asÃ: <input type=“text”
name=“titulo[titulo]”…
Ponlo mejor asÃ: <%=text_field “pagina”, “titulo”%> No hace falta que
pongas
el value, que te lo pone directamente si está en la bbdd
Y lo pillas en el controlador con params[:pagina][:titulo]