Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/387.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript JQuery-AJAX-PUT,不工作_Javascript_Ruby_Ajax_Ruby On Rails 3 - Fatal编程技术网

Javascript JQuery-AJAX-PUT,不工作

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

我将发送一个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
  @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也是由另一个人建议的。我正在编辑它以显示问题的新视图-如果你有机会,请看一看。非常感谢。事实证明,这是一个不同的问题。我会更新帖子的。