如何在rails中保存Jquery_ui可排序位置?

时间:2017-01-18 06:16:52

标签: jquery jquery-ui ruby-on-rails-5 jquery-ui-sortable

大家好〜我对rails和stockoverflow非常新,所以请原谅我的初学者问题。 (我离Jquery / JS / ajax退伍军人也不远)

我知道“保存可排序列表”的问题存在,但是它们要么是为PHP而不完整,要么不符合我项目的建议,我试图找到一个可以理解的例子,到目前为止没有运气好的话。 (我使用的是rails 5.0& ruby​​ 2.2)

我的目标是使用Jquery_UI为一个rails项目创建一个可排序的列表,用户刷新页面,排序的内容应该保留在他们上次存储的位置,我知道有很多方法可以做到这一点,理想情况下是通过ajax请求完成的,饼干,邮寄请求也不错。

到目前为止,可排序函数本身很容易,但是当我试图保存它们的最后位置时,我发现自己在rails的worklogic上苦苦挣扎。

我完成了什么 1.确认我的Jquery_ui代码中的可排序列表工作(没有我破坏的Ajax) 2.使用“序列化”并发出ajax请求(不确定我的代码是否正确)

我很困惑 3.在构建我的Ajax请求时,我知道我需要将我的rails控制器的方法链接到Ajax URL以便将数据发送到我的数据库(或者我应该将它发送到哪里?)但是我看不到的是如何找到写这个方法让我的控制器响应ajax?

或者我的思维过程是不正确的?我感谢所有能帮助一个无能为力的菜鸟的人。

我的HTML

  <table>   
  <thead>
    <tr>
      <th>Name</th>
      <th>E-mail</th>
      <th>Location</th>
      <th>lead</th>
      <th>note</th>
    </tr>
  </thead>
     <% @user.each do |user| %>
  <tbody>
    <tr>
      <td><%= user.name %></td>
      <td><%= user.email %></td>
      <td><%= user.location %></td>
      <td><%= user.lead %></td>
      <td><%= user.note %></td>

    </tr>

    <% end %>
  </tbody>

我的Jquery代码

$("tbody").sortable(

  update: function(event, ui){


  axis: 'y',
  update: function (event, ui) {
    var order = $("tbody").sortable('serialize');
    $.ajax({
      data: order,
      type: 'POST',
      url: '/projects/save_position',
      success: function() {
        console.log("does it work?")
      }
    })
  }
}); 

rails控制器到Jquery ajax的路径 - &gt;项目

  

def save_sortable

order = param[:tbody]     # ????? don't know how to write this method
     

1 个答案:

答案 0 :(得分:0)

Rails 5现在需要每个https://hashrocket.com/blog/posts/how-to-upgrade-to-rails-5的Ruby 2.2.2或更高版本,这是一年之久的帖子。 Ruby 2.3.1似乎是使用Rails 5的最低要求