Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/78.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/elixir/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何将javascript数据发布到rails控制器操作?_Javascript_Jquery_Ruby On Rails_Ajax_Ruby On Rails 4 - Fatal编程技术网

如何将javascript数据发布到rails控制器操作?

如何将javascript数据发布到rails控制器操作?,javascript,jquery,ruby-on-rails,ajax,ruby-on-rails-4,Javascript,Jquery,Ruby On Rails,Ajax,Ruby On Rails 4,我使用的拖放排序的一些名单,我有。我所需要的只是将下面的数据发送或发布到我的rails控制器操作,以便更新订单 这是我每次拖动列表时在控制台中得到的结果 list_46 0 list_45 1 list_38 2 list_44 3 list_39 4 list_37 5 这正是我需要将上述数据发送到的路径。我的路线设置正确 sortlists_boards POST /boards/sortlists(.:format) Javascript代码 jQuery(function() {

我使用的拖放排序的一些名单,我有。我所需要的只是将下面的数据发送或发布到我的rails控制器操作,以便更新订单

这是我每次拖动列表时在控制台中得到的结果

list_46
0
list_45
1
list_38
2
list_44
3
list_39
4
list_37
5
这正是我需要将上述数据发送到的路径。我的路线设置正确

sortlists_boards POST  /boards/sortlists(.:format) 
Javascript代码

jQuery(function() {
  $('.listwrap').shapeshift();
  return $('.listwrap').on('ss-rearranged', function(e) {
    $(this).children().each(function() {
      #I need to send/post these two lines below to sortlists_boards_path 
      console.log($(this).attr("id"))
      console.log($(this).index())    
    });
  });
});
一些可能有帮助的Github问题


在每次拖放时创建/更新一个JavaScript对象,并向控制器发送一个ajax请求,您可以在控制器中读取该对象并将其存储在数据库中。

首先,修改JavaScript以创建一个有序对数组并将其发送到端点:

jQuery(function() {
  $('.listwrap').shapeshift();
  $('.listwrap').on('ss-rearranged', function(e) {
    ordered_items = [];
    $(this).children().each(function() {
      ordered_items.push([$(this).attr("id"), $(this).index()]);
    });
    $.post('/boards/sortlists',
      {ordered_items: JSON.stringify(ordered_items)},
      function(data, status, jqXHR) {
      // This is what gets rendered from your rails controller + action
    });
  });
});
然后,回顾一下它在Rails端的外观,并对其进行处理

class BoardsController < ApplicationController
  # ...
  def sortlists
    logger.info params[:ordered_items]
  end
  # ...
end

输出将转到log/development.log

请提供rake路由的输出好吗?sortlists_boards是命名路线,但不清楚终点是什么样的我更新了我的问题。sortlists_boards POST/boards/sortlists.:formathmm我收到500个内部服务器错误我在使用Jquery Sortable时遇到了这个问题,但我不知道如何使用shapeshift来实现这一点。我在Jquery Sortable$.post$this.data'update-list',this.Sortable'serialize'中使用了它,但shapeshift说您不能序列化Ok,这是因为我必须在我的sortlists方法中添加render nothing:true。这修复了服务器错误。但是,当我查看rails终端时,它显示参数:{ordered_items=>[]},但当我将列表拖动到不同的顺序时,没有任何变化。我的日志中没有显示任何内容。你能在客户端的post请求上运行console.logordered_items以查看其中是否有任何内容吗?你的权利那里没有任何内容我不能让此部分与你的代码一起工作,返回$'.listwrap'。在'ss-reased',function{};你能用我所有的javascript更新你的帖子吗。也许我用错了语法或者别的什么。这就是为什么里面什么都没有。