Я пытаюсь получить выбор из раскрывающегося списка для заполнения таблицы на той же странице, используя 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>