Recuperar parametros

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

<% for @eir in @eires %>

<% end %> <%= submit_tag 'anexar'%> <%= end_form_tag %>
Cod. Sub. Descripcion Inc
<%= @eir.codigo%> <%= @eir.subcodigo%> <%= @eir.descripcion%> <%= check_box("eir[]", 'incorporar') %>

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

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

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