2011-10-24 2 views
2

Rails UJSを使用してremote = trueで送信するフォームがあります。XHRリクエストにどのようにデータを追加するのですか?

beforeSendイベントでは、データを追加します。私は次のようにしようとしている:

onNewListItemFormBeforeSend : function(event, xhr, settings) { 

    settings.data += { 'list_item[title]' : input_val, 
    'list_item[position]' : 0, 
    'list_items[open_positions]' : 'stuff', 
    'list_items[done_positions]' : 'stuff') 
    }; 

} 

をしかし、私はsettings.dataをログアウト時にこのオブジェクトを追加して... settings.dataのためにこれらの項目を追加するための正しい方法は何ですか?私もちょうどやってみました

おかげ

UPDATE:

settings.data = { 'number' : 'XXXXXX' } 

しかし、それは動作しませんでした。ログには次の情報が表示されます。

Started POST "/lists/9/list_items" for 127.0.0.1 at 2011-10-24 11:55:39 -0700 
    Processing by ListItemsController#create as JSON 
    Parameters: {"object Object"=>nil, "list_id"=>"9"} 

なぜオブジェクトオブジェクトがnilになるのですか?

おかげ

答えて

0
settings.data["list_item"] = { 'title' : input_val, 
    'position' : 0, 
    'open_positions' : 'stuff', 
    'done_positions' : 'stuff' 
}; 

はこのような何かを試してみてください。 "list_item"プロパティを作成し、このようにjsで動的に設定することができます。

+0

おかげでそれが働いていない私はsettings.dataのログイン時に...の項目が追加されていません – AnApprentice

1

jquery_ujsの新しいバージョンを使用している場合は、data-paramsを使用することができます(この時点で実行できる場合)。それ以外の場合は、ajax:beforeにバインドしてその時点のデータを変更することができます。私はdata-params自分自身を学ぶだろう。

はここで同じ問題にもう少し詳細です:

https://github.com/rails/jquery-ujs/issues/168

関連する問題