Javascript JQuery-AJAX-PUT,不工作
我将发送一个JQuery AJAX调用,如下所示,以更新ActiveRecord数据库中的记录:Javascript JQuery-AJAX-PUT,不工作,javascript,ruby,ajax,ruby-on-rails-3,Javascript,Ruby,Ajax,Ruby On Rails 3,我将发送一个JQuery AJAX调用,如下所示,以更新ActiveRecord数据库中的记录: var url_out = '/users/' + args.item.id; $.ajax({ url: url_out, type: 'POST', method: 'PUT', data: args.item, success: function(dat) { alert("did it"); } 在用户控制器中,我有以下内容: def update @u
var url_out = '/users/' + args.item.id;
$.ajax({
url: url_out,
type: 'POST',
method: 'PUT',
data: args.item,
success: function(dat) {
alert("did it");
}
在用户控制器中,我有以下内容:
def update
@user = User.find(params[:id])
if @user.update_attributes(params[:user])
因此,我需要将args.item中的数据作为params[:user]传递。可以使用AJAX调用传递命名参数吗?我可能错了,但我知道Rails实际上是通过添加一个值为“PUT”的隐藏参数\u方法来模拟http谓词,而实际请求是一个POST(由于某些浏览器不支持所有谓词)
所以,你可以试着写一篇文章,并添加一个参数“方法:”PUT“我要感谢@Dom和@Eduard的帮助。结果证明我需要做如下事情:
x_out = {};
x_out["first_name"] = args.item.first_name;
x_send = {};
x_send["user"] = x_out;
这使我能够将命名参数传递给控制器中的update方法。type(默认值:'GET')type:String请求的类型(“POST”或“GET”),默认值为“GET”。注意:此处也可以使用其他HTTP请求方法,如PUT和DELETE,但并非所有浏览器都支持这些方法@多姆,非常感谢。是的,我看到了。事实证明,这不是问题所在。PUT方法的工作原理与POST相同,方法PUT也是由另一个人建议的。我正在编辑它以显示问题的新视图-如果你有机会,请看一看。非常感谢。事实证明,这是一个不同的问题。我会更新帖子的。