0

我正在发送如下 JQuery AJAX 调用,以更新 ActiveRecord DB 中的记录:

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 调用传递命名参数吗?

4

2 回答 2

0

我可能错了,但我知道 Rails 实际上是通过添加一个值为“PUT”的隐藏参数 _method 来模拟 http 动词,而实际请求是一个 POST(由于某些浏览器不支持所有动词”)

所以,你可以尝试做一个帖子并添加一个参数_method:“PUT”

于 2013-02-07T15:31:34.250 回答
0

我要感谢@Dom 和@Eduard 的帮助。事实证明我需要做这样的事情:

x_out = {};
x_out["first_name"] = args.item.first_name;
x_send = {};
x_send["user"] = x_out;

这让我可以将命名参数传递给控制器​​中的更新方法。

于 2013-02-07T16:08:15.703 回答