我正在尝试使用 AJAX 从下拉列表中进行选择以填充同一页面中的表格,以便在不刷新页面的情况下显示更改。我已经完成了远程调用的代码,并将自定义操作添加到控制器,但我不知道如何将返回的信息放入我拥有的表中。目前,该表只是循环遍历所有项目,但我希望它只显示所选项目的信息。
我需要在 JS(rjs?)文件中写入什么来让它处理返回的信息,以及我需要对现有表进行哪些更改以确保它显示正确的信息?
下拉列表(使用 AJAX 调用):
<%= collection_select :id, Project.all, :id, :name, :onchange => remote_function(:url=>{:action => 'populate_projects'}) %>
控制器动作:
def populate_projects
@project = Project.find(params[:id])
end
和现有的表:
<table>
<tr>
<th>Name</th>
<th>Category</th>
<th>Budget</th>
<th>Deadline</th>
<th>Company ID</th>
<th></th>
<th></th>
<th></th>
</tr>
<% @projects.each do |project| %>
<tr>
<td><%= project.name %></td>
<td><%= project.category %></td>
<td><%= number_to_currency(project.budget, :unit => "£") %></td>
<td><%= project.deadline.strftime("%A, %d %B %Y") %></td>
<td><%= project.company_id %></td>
<td><%= link_to 'More', project %></td>
<td><%= link_to 'Edit', edit_project_path(project) %></td>
<td><%= link_to 'Delete', project, confirm: 'Are you sure?', method: :delete %></td>
</tr>
<% end %>
</table>