Select con Ajax

Hola a todos, me encuentro realizando una aplicación y necesito mostrar
una tabla(trabajadores) en función de la opción que se elija en un
combo(contiene profesiones). La forma de la que estoy intentando
realizar es utilizando Ajax, de la siguiente forma.

Tablas:
trabajadores(id,CodTrabajador,NombreCompleto, …,
FechaIngreso,Profesion_id)
profesiones(id, Descripcion)

Esto tengo en mi controlador: personal_controller.rb

def get_profesionales
@trabajadores = Ttrabajador.find(:all,
:conditions => {:Profesional_id =>
params[:profesion_selec]})
render(:layout => false)
end

En la vista index:


<% @profesiones.each do | profesion | %>
<%=
profesion.Descripcion %>
<% end %>

En el layout get_profesionales

<% for trabajador in @trabajadores %> ..... <% end %>
<%= trabajador.CodTrabajador %> <%= trabajador.NombreCompleto %><%= trabajador.FechaIngreso %>

El problema que tengo es que no obtengo el id de la profesión
seleccionada en el combo, por lo que no se despliega ningun trabajador.

Tal vez alguna sugerencia para realizarlo de mejor manera.

Gracias de antemano.

Disculpas, por el mail…confusión de dirección

Marcelo Ferrufino wrote:

Hola a todos, me encuentro realizando una aplicación y necesito mostrar
una tabla(trabajadores) en función de la opción que se elija en un
combo(contiene profesiones). La forma de la que estoy intentando
realizar es utilizando Ajax, de la siguiente forma.

Tablas:
trabajadores(id,CodTrabajador,NombreCompleto, …,
FechaIngreso,Profesion_id)
profesiones(id, Descripcion)

Esto tengo en mi controlador: personal_controller.rb

def get_profesionales
@trabajadores = Ttrabajador.find(:all,
:conditions => {:Profesional_id =>
params[:profesion_selec]})
render(:layout => false)
end

En la vista index:


<% @profesiones.each do | profesion | %>
<%=
profesion.Descripcion %>
<% end %>

En el layout get_profesionales

<% for trabajador in @trabajadores %> ..... <% end %>
<%= trabajador.CodTrabajador %> <%= trabajador.NombreCompleto %><%= trabajador.FechaIngreso %>

El problema que tengo es que no obtengo el id de la profesión
seleccionada en el combo, por lo que no se despliega ningun trabajador.

Tal vez alguna sugerencia para realizarlo de mejor manera.

Gracias de antemano.


Hola, yo tengo hecho algo parecido a lo que creo que dices de la
siguiente manera:

  • en el controlador
    @categorias = Categoria.find(:all)

  • En la vista (rhtml)

Aquí te llega la lista de ‘categorias’ y con el collection_select haces
que cada opción del select tenga un id (:id) y un texto (:nombre). El ID
es lo que envías en el observe al método.

<%= collection_select ‘oferta’,‘categoria_id’, @categorias, :id,
:nombre, options = {:prompt => “Seleccione una categoria”} %>
<%= observe_field ‘oferta_categoria_id’,
:url => {:controller => ‘oferta’,
:action => ‘set_productos_by_categoria’},
:with => “‘categoria_id=’ + escape(value)”
%>

De esta manera el ‘observe’ cuando elijas una opción del combo ejecuta
el método ‘set_productos_by_categoria’, y en este método es donde se
hacen las cosas en función de la categoría de la oferta (tu deberías
renderizar o hacer visibles los trabajadores).

  • En el método ‘set_productos_by_categoria’
    Recibes por params el ID de la categoria (en tu caso sería de
    profesional)

This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.

| Privacy Policy | Terms of Service | Remote Ruby Jobs