Перетаскивание с помощью Rails и JQuery - PullRequest
0 голосов
/ 10 мая 2019

Я пытаюсь создать что-то вроде клона Трелло.Сейчас я пытаюсь добавить функциональность перетаскивания, следуя https://gorails.com/episodes/sortable-drag-and-drop. Я создал tasks.js:

document.addEventListener("turbolinks:load", function () {
  $("#task").sortable({
    update: function (e, ui) {
      Rails.ajax({
        url: $(this).data("url"),
        type: "PATCH",
        data: $(this).sortable('serialize'),
      });
      console.log($(this).sortable('serialize'));
    }
  });
});

Я создал метод sort в моем контроллере, и я 'я не вижу никаких param кроме контроллера и отправляемого метода.

У меня есть частичный _tasks.html.erb, и у меня есть <div class="card" id="<%= dom_id(task) %>"> (который генерирует идентификатор, такой как task_1, поэтому перетаскивание& drop может идентифицировать задачу, которую нужно перетащить / отбросить).

index.html задач:

<div class="row" id="task" data-url="<%= sort_tasks_path %>">
  <div class="col-md-4">
    <%= render @to_do %>
  </div>
  <div class="col-md-4">
    <%= render @doing %>
  </div>
  <div class="col-md-4">    
    <%= render @done %>
  </div>
</div>

А маршруты:

Rails.application.routes.draw do
  resources :tasks do
    member do
      put :change
    end
    collection do
      patch :sort
    end
  end
  ...
end

Первая проблема в том, что вывод console.log($(this).sortable('serialize')); - ничто: в консоли ничего не печатается, поэтому рельсы не могут вызвать tasks_controller#sort с id и position задачи.

Большое спасибо за помощь!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...