Я пытаюсь создать что-то вроде клона Трелло.Сейчас я пытаюсь добавить функциональность перетаскивания, следуя 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
задачи.
Большое спасибо за помощь!