【发布时间】:2010-10-09 10:54:28
【问题描述】:
由于我的last question 没有得到预期的答案,我将尝试简化和缩小我的问题:
如何构建一个使用 AJAX(无提交按钮)的下拉菜单来调用某个控制器的显示操作?
给出以下几点:
Model-Association 是 Categories HABTM 项目,因此下拉菜单包含所有类别名称。
应该实现下拉菜单的部分视图。下拉菜单下方是应根据下拉菜单中的选择更改的项目列表:
<!-- 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>
Categories 控制器和应该调用的 show-action:
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
在 Categories 控制器中调用 show-action 的 路由:
category GET /categories/:id {:controller=>"categories", :action=>"show"}
您将如何实现这一点?非常感谢任何帮助!
【问题讨论】:
标签: javascript ruby-on-rails ruby rjs