【发布时间】:2017-01-18 06:16:51
【问题描述】:
大家好~我对 rails 和 stockoverflow 很陌生,所以请原谅我的初学者 lvl 问题。 (我也远不是 Jquery/JS/ajax 的老手)
我知道存在“保存可排序列表”问题,但它们要么是针对 PHP 的,不完整,要么不符合我的项目建议,我试图在整个地方寻找一个易于理解的示例,到目前为止还没有运气好的话。 (我正在使用 rails 5.0 和 ruby 2.2)
我的目标是使用 Jquery_UI 为用户刷新页面的 Rails 项目制作一个可排序的列表,排序后的内容应该保留在上次存储的位置,我知道有很多方法可以做到这一点,最好是通过 ajax 请求完成, cookie,发布请求也不错。
到目前为止,可排序功能本身很简单,但是当我试图保存他们的最后一个位置时,我发现自己在 Rails 的工作逻辑上苦苦挣扎。
我完成了什么 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 的路径 -> 项目
def save_sortable
order = param[:tbody] # ????? don't know how to write this method结束
【问题讨论】:
标签: jquery jquery-ui ruby-on-rails-5 jquery-ui-sortable