RJS: Ajaxified select_tag
Como eu não recebi a resposta esperada no meuultima questã Tentarei simplificar e restringir minha pergunta:
Como posso criar um menu suspenso que use AJAX (sem botão de envio) para chamar a ação show de um determinado controlado
São fornecidas as seguintes coisas:
Associação Modelo éCategorias Projetos HABTM, portanto, o menu suspenso consiste em todos os nomes de categoria
Oview parcial onde o menu suspenso deve ser implementado. Abaixo do menu suspenso, há uma lista de projetos que devem ser alterados de acordo com a escolha feita no menu suspenso:
<!-- placeholder for AJAX dropdown menu -->
<!-- list of projects related to categories chosen by the select tag -->
<ul class="projects">
<% @projects.each do |_project| %>
<li>
<%= link_to(_project.name, _project) %>
</li>
<% end %>
</ul>
OCategories controller com a ação de exibição que deve ser chamada:
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
Orot para chamar a ação de exibição no controlador Categorias:
category GET /categories/:id {:controller=>"categories", :action=>"show"}
Como você implementaria isso? Qualquer ajuda é muito apreciada!