Recoger variables de un formulario

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 bbdd

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 %>


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]