阅读播放2.2.1文档后,我可以看到没有内置的机制来处理HTTP删除方法? (也不是吗?)当我说内置的我的意思是,例如,轨道有method="delete"
,它可以与<a></a>
一起使用来通过DELETE动词调用动作。
因此,例如在以下图片我有一个用户列表(GET /用户...)。 播放框架2.2.1通过ajax删除记录,方法:删除
我所理解的,我可以通过AJAX调用模拟delete方法,所以我尝试了以下方法:
// index.scala.html
@users.map { user =>
...
<td> <a href="#" class="delete-user" data-id="@user.getId()"> Delete </td>
...
}
//的script.js
$(function() {
$('.delete-user').click(function() {
var id = $(this).data('id');
var $that = $(this);
$.ajax({
url: jsRoutes.controllers.Users.delete(id).url,
type: "DELETE"
}).done(function() {
$that.closest('tr').remove();
});
});
});
// Users.java(控制器)
@Transactional
public static Result delete(Long id) {
JPA.em().remove(JPA.em().find(User.class, id));
return ok("User with id=" + id + " has been deleted");
}
那么这是正确的方式来做到这一点?或者我误解/忽略了文档?
Rails并不真正以你理解的方式支持'PUT'和'DELETE'。相反,它使用'POST'并用隐藏字段模拟其他方法。所以是的,你在正确的轨道上。 –
我在框架支持的背景下谈论。 – Srle