大家好〜我对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
端
答案 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的最低要求