可排序的拖放Rails和JQuery

时间:2018-08-03 16:35:32

标签: jquery ruby-on-rails-5

我希望有人能提供帮助。我已经完成了可排序拖放的教程。 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>

0 个答案:

没有答案