Как мне получить новые значения позиций в контроллере rails?

У меня есть таблица html, в которой я хочу менять позиции элементов за счёт перетаскивания. Я пока смог найти способ, чтобы просто перетаскивать элементы. Но я не знаю как мне получить новые значения. При получении я хочу менять значения позиций на новые.

Как мне из функции js получить позиции в контролер?

Возможно вопрос не совсем корректный...

Моё представление

<table cellpadding="0" cellspacing="0" border="1">
    <tr>
      <th>#</th>
      <th>Номер</th>
      <th>Проект</th>
      <th>Трекер</th>
      <th>Статус</th>
      <th>Тема</th>
    </tr>
  <tbody id="tasks" data-url="<%=sort_tasks_path%>">
    <% @tasks.each do |task| %>
      <tr id="<%=dom_id(task)%>">
        <td><%= task.id %></td>
        <% @t = @issues.find_by(id: task.issues_id) %>
        <td><%= @t.id %></td>
        <% @project = @projects.find_by(id: task.projects_id) %>
        <td><%= @project.name %></td>
        <% @tracker = @trackers.find_by(id: task.trackers_id) %>
        <td><%= @tracker.name %></td>
        <% @status = @statuses.find_by(id: task.issue_statuses_id) %>
        <td><%= @status.name %></td>
        <td><%= @t.subject %></td>
      </tr>
      <% end %>
  </tbody>
</table>

<style type="text/css">
  table th, table td
  {
    width: 100px;
    padding: 5px;
    border: 1px solid #ccc;
  }
  .selected
  {
    background-color: #666;
    color: #fff;
  }
</style>

<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
<link rel="stylesheet" href="https://ajax.googleapis.com/ajax/libs/jqueryui/1.8.24/themes/smoothness/jquery-ui.css" />
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.8.24/jquery-ui.min.js"></script>
<script type="text/javascript">
  $(function() {

    $("#tasks").sortable({
      start: function (e, ui) {
        ui.item.addClass("selected");
      },
      stop: function (e, ui) {
        ui.item.removeClass("selected");
      },
      update: function(e, ui) {
        Rails.ajax({
          url: $(this).data("url"),
          type: "PATCH",
          data: $(this).sortable('serialize'),
        });
      }
    });
  });
</script>

Функция sort

def sort
    params[:task].each_with_index do |id, index|
     Task.where(id: id).update_all(position: index + 1)
    end
    head :ok
  end
end

Ответы (0 шт):