【发布时间】:2012-09-30 06:28:55
【问题描述】:
我为笔记列表实现了 jQuery 的可拖动/可拖放,以便对它们进行分层排序,目前效果很好,但我觉得我做的太多了。
整个csrf 部分是随请求手动发送的,我也在手动评估响应,这是 ujs 提供的功能。有没有办法无缝集成,以便我可以利用 ujs lib 的优势?
我想到的一个可能的解决方案是将整个可拖动对象包装到 <form data-remote="true"> 中,但这感觉有点骇人听闻。
$(function()
{
$('#notes-container .note').draggable();
$('#notes-container .note').droppable({
drop: function(event, ui)
{
$.ajax({
type: 'PUT',
url: ui.draggable.find('form').attr('action'),
data: {
authenticity_token: $('meta[name="csrf-token"]').attr('content'),
task: {
parent_id: $(this).data('id')
}
}
});
}
});
});
【问题讨论】:
-
一点也不骇人听闻,您只需提交 AJAX 即可处理整个表单。我经常这样做。我有带有 remote=>true 的表单,其中包含许多 AJAX 操作。但请注意,我有一小部分用户(例如 277 MAX),我不关心他们必须启用 javascript 才能使用我的网站。如果您担心不引人注目或担心禁用 JavaScript 的用户,我不适合听。
-
因为这应该是一个小的 webapp,而且我觉得 web 应该发展而不是停滞不前,所以我不会为使用 IE
标签: jquery ruby-on-rails ruby-on-rails-3 ujs