Forum: Rails-ES Recuperar parametros

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.
De20b7427a7300175a8149a48a29c3da?d=identicon&s=25 Lourdes (Guest)
on 2007-03-14 17:57
Hola, buenas tardes.

Tengo un formulario con 2 combos, uno de centros, y otro de puestos de
trabajo, cuando busco un centro, me selecciona todos los puestos de
trabajo de ese centro.

A continuación tengo un modelo, que utilizo de plantilla, en el que
selecciono mediante un checkbox los resgistros que quiero que se me
copien en otra tabla, llamada riesgos, en la que tengo todos los campos
de esa plantilla y algunos mas,  entre los que estan el centro y el
puesto de trabajo, que he seleccionado en los combos de arriba.

Aquí está la vista:

<%= start_form_tag :action => 'anexar'%>
    <%= select( "centro", "id", Centro.find(:all).collect{ |l1|
[l1.nombre, l1.id] } ) %>
    <%= select( "puesto", "id", [] ) %>


<%= observe_field "centro_id",
    {:url => {:action => 'actualiza_puestos'},
    :with => "centro_id"} %>

<table border=1 cellpadding="5" cellspacing="0">
  <tr>
    <th>Cod.</th>
    <th>Sub.</th>
    <th>Descripcion</th>
    <th>Inc</th>
  </tr>


<% for @eir in @eires %>
  <tr>
    <td><%= @eir.codigo%></td>
    <td><%= @eir.subcodigo%></td>
    <td><%= @eir.descripcion%></td>
    <td><%= check_box("eir[]", 'incorporar') %></td>

  </tr>
<% end %>
<%= submit_tag 'anexar'%>
<%= end_form_tag %>
</table>

<br />

<%= pagination_links(@eir_pages) %>


Necesito recuperar el centro y el puesto

Cuando le doy a anexar, voy a la accion anexar del controlador, en el
que he puesto render :inline => "<%= debug(params) %>"
Para ver los parámetros que estoy pasando.

Y me hace lo siguiente

--- !map:HashWithIndifferentAccess
commit: anexar
eir: !map:HashWithIndifferentAccess
  "237": !map:HashWithIndifferentAccess
    incorporar: "0"
  "33": !map:HashWithIndifferentAccess
    incorporar: "0"
  "34": !map:HashWithIndifferentAccess
    incorporar: "0"
  "35": !map:HashWithIndifferentAccess
    incorporar: "0"
  "36": !map:HashWithIndifferentAccess
    incorporar: "0"
  "30": !map:HashWithIndifferentAccess
    incorporar: "0"
  "29": !map:HashWithIndifferentAccess
    incorporar: "1"
  "31": !map:HashWithIndifferentAccess
    incorporar: "0"
  "32": !map:HashWithIndifferentAccess
    incorporar: "0"
  "236": !map:HashWithIndifferentAccess
    incorporar: "0"
puesto: !map:HashWithIndifferentAccess
  id: "59"
action: anexar
controller: eires
centro: !map:HashWithIndifferentAccess
  id: "11"


El puesto y el centro que me pasa están bien, pero no se como
recuperarlo para grabarlo en la tabla riesgos.

Estoy poniendo riesgos.centro_id = params[:centro_id], pero me dice que
el valor es nulo, y veo que el puesto = 59 y el centro a 11, que es
correcto

Alguien sabe como puedo recuperar estos valores.?

Muchas gracias
1f2eadfb41362800ebc2cf211b91d0f7?d=identicon&s=25 javier ramirez (Guest)
on 2007-03-14 18:16
(Received via mailing list)
>     <%= select( "centro", "id", Centro.find(:all).collect{ |l1|
> [l1.nombre, l1.id] } ) %>
>     <%= select( "puesto", "id", [] ) %>
>
> Estoy poniendo riesgos.centro_id = params[:centro_id], pero me dice que el valor es 
nulo, y veo que el puesto = 59 y el centro a 11, que es correcto
puedes usar select_tag en lugar de select y poner "centro_id" y
"puesto_id" como valor de los campos. Con eso puedes recogerlos tal y
como querías.

adicionalmente, si tienes un modelo riesgos que contiene esos dos
campos, puedes usar select, poniendo "riesgo" en el primer parámetro y
"centro_id"/"puesto_id" en el segundo. Esto tiene como ventaja que en el
controlador luego puedes cargar de golpe todo el objeto y además si en
tu vista ese objeto ya tenía valores te los muestra directamente en el
formulario.

para todos (creo) los helpers de formularios tienes las dos formas con o
sin tag y con la misma filosofía.

saludos,

javier ramirez

--
--------
Estamos de estreno... si necesitas llevar el control de tus gastos
visita http://www.gastosgem.com !!Es gratis!!
De20b7427a7300175a8149a48a29c3da?d=identicon&s=25 Lourdes (Guest)
on 2007-03-15 09:48
Hola Javier, ya lo he probado y me funciona muy bien.

Ya estaba perdiendo mucho tiempo en esto y no sabía como hacerlo.

Muchas gracias y saludos
This topic is locked and can not be replied to.