初投稿です。自分用の備忘録のために残します。
##おことわり
rails, jqueryを初めて3週間のプログラミング超初心者です。間違っている箇所がありましたら、声をかけていただけると幸いです。
##FormData
FormData オブジェクトは、XMLHttpRequest を使用して送信するためのキーと値のペアのセットを収集可能にします。本来はフォームデータの送信に使用することを想定していましたが、キーのついたデータを伝送するためにフォームとは独立して使用することもできます。伝送されるデータは、フォームのエンコードタイプが multipart/form-data に設定されている場合に、submit() メソッドで送信する際に使用するデータと同じ形式です。
参照:[MDN]
(https://developer.mozilla.org/ja/docs/Web/Guide/Using_FormData_Objects)
つまり、指定したHTMLのクラスやidをしているすることで、そのフォームに入力されたキーと値を引っ張ってこれるというオブジェクト。
「XMLをしようして・・・」と書いてありますが、JSON形式でもOK
##例えば
$('#new_message').on('submit',function(e){
e.preventDefault();
var formData = new FormData(this);
3行めのFormData(this)のthisは1行目の#new_messageのこと。
それをformDataという変数に突っ込んでいます。
じゃあ、#new_messageにはどんなキーがあるのかというと、
json.content @message.content
json.name @message.user.name
json.time @message.created_at.to_s
json.id @message.id
json.img_url @message.image
ここでは「キー」というのは、データベースに登録したカラムのことでcontentだったり、created_atだったりします。
「値」はフォームなので、ユーザーが入力したものになります。timeとかはメッセージを入力した時間ですね。
これらの「キー」と「値」をセットにし、JSON(またはXML)形式で引っ張ってくるのがDataFormオブジェクトです。
##この記事を書くのに使用したページ
1.[MDN] (https://developer.mozilla.org/ja/docs/Web/Guide/Using_FormData_Objects)
2.Markdown書き方メモ
3.[Markdown記法 チートシート] (https://qiita.com/Qiita/items/c686397e4a0f4f11683d#lists---%E3%83%AA%E3%82%B9%E3%83%88)