RJS: Ajaxified select_tag

Como no obtuve la respuesta esperada en mi última pregunta , trataré de simplificar y acotar mi pregunta:

¿Cómo puedo crear un menú desplegable que use AJAX (sin botón de envío) para llamar a la acción de mostrar de un determinado controlador?

Se dan las siguientes cosas:

Modelo-Asociación es Categorías HABTM Proyectos , por lo tanto, el menú desplegable consta de todos los nombres de categorías.

La vista parcial donde se debe implementar el menú desplegable. Debajo del menú desplegable hay una lista de proyectos que deben cambiar de acuerdo con la elección realizada en el menú desplegable:

  

El controlador de Categorías con el show-action que debería llamarse:

 class CategoriesController < ApplicationController def show # params[:id] should be the choice the user made in the dropdown menu @category = Category.find(params[:id]) @projects = @category.projects.find(:all) respond_to do |format| format.html # show.html.erb format.js # needed for ajax response? end end def index @projects = Category.find(params[:id]).projects.find(:all) @category = @project.categories.first respond_to do |format| format.html # index.html.erb end end end 

La ruta para llamar al show-action en el controlador de Categorías:

 category GET /categories/:id {:controller=>"categories", :action=>"show"} 

¿Cómo implementarías esto? Cualquier ayuda es muy apreciada!

Qué tal esto:

 <% form_for :category, :url => { :action => "show" } do |f| %> <%= select_tag :id, options_from_collection_for_select(Category.find(:all), :id, :name), { :onchange => "this.form.submit();"} %> <% end %> 

Llamará a una llamada html tradicional, por lo que actualizará toda la página (y responderá a format.html).

Luego el controlador encontrará la categoría por el enviado [: id]

 @category = Category.find(params[:id])