Rails AJAX – 获取下拉选项以填充表格

我正在尝试从下拉列表中选择使用AJAX填充同一页面中的表,以便在没有页面刷新的情况下显示更改。 我已经编写了远程调用的代码,并将自定义操作添加到控制器,但我不知道如何将返回的信息放入我已经获得的表中。 目前,该表只是循环遍历所有项目,但我希望它只显示所选项目的信息。

我需要在JS(rjs?)文件中编写什么来让它处理返回的信息,以及我需要对现有表进行哪些更改以确保它显示正确的信息?

下拉(使用AJAX调用):

 remote_function(:url=>{:action => 'populate_projects'}) %> 

控制器动作:

  def populate_projects @project = Project.find(params[:id]) end 

和现有的表格:

 
Name Category Budget Deadline Company ID
"£") %>

假设你正在使用jquery

 <%= collection_select :project, :id, Project.all, :id, :name, {}, {:onchange => '$.get("/populate_projects")'} %> 

然后在你的控制器中

 def populate_projects @project = Project.find(params[:id]) respond_to do |format| ... format.js { render 'populate_projects', :formats => [:js] } ... end end 

最后,创建populate_projects.js.erb并编写任何更改表内容脚本。 @project在该脚本中可用。

创建一个部分_project.html.erb并在索引页面中呈现此部分。 <%= render @projects %>在更改项目时,只使用项目对象渲染部分并使用rjs更新页面。

在js(RJS)文件中,您需要调用部分HTML文件,此文件包含您在问题中显示的表格。

我希望这可以帮助你。

谢谢。