0

ActiveRecord DB のレコードを更新するために、次のように JQuery AJAX 呼び出しを送信しています。

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 が実際に隠しパラメーター _method を値 "PUT" で追加することによって http 動詞をシミュレートしており、実際の要求は POST であることを知っています (一部のブラウザーはすべての動詞をサポートしていないため)。

SO、投稿を試みて、パラメーター _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;

これにより、名前付きパラメーターをコントローラーの update メソッドに渡すことができます。

于 2013-02-07T16:08:15.703 に答える