我希望有人能提供帮助。我已经完成了可排序拖放的教程。 https://gorails.com/episodes/sortable-drag-and-drop
一切正常,但是一旦发生掉落,我就会收到NoMethodError NoMethodError(对于nil:NilClass,未定义的方法each_with_index'):`
这是在控制器中的排序操作上发生的(我是admin / products)
管理员/产品控制器
def sort
params[:product].each_with_index do |id, index|
Product.where(id: id).update_all(position: index + 1)
end
head :ok
end
有人知道是什么原因吗?
products.js
document.addEventListener("turbolinks:load", function() {
$("#products").sortable({
update: function(e, ui) {
Rails.ajax({
url: $(this).data("url"),
type: "PATCH",
data: $(this).sortable('serialize'),
});
}
});
});
管理产品索引
<tbody id="products" data-url="<%= sort_admin_products_path %>">
<%= render @products %>
</tbody>
管理产品-产品
<tr>
<td><%= link_to product.product_code, admin_product_path(product), id: dom_id(product) %> - (<%= product.position %>)</td>
<td><%= product.product_name.truncate(45) %></td>
<td></td>
<td><%= link_to 'Edit', edit_admin_product_path(product), class: 'btn btn-sm btn-warning' %></td>
<td><%=button_to "Remove", admin_product_path(product), method: :delete, data: { confirm: 'Are you sure?' }, :class => 'btn btn-sm btn-danger' %></td>
</tr>