javascriptの値をrailsのController側に渡す
view側のjavascriptの値(textFieldや変数など)をController側に渡すためにしたことのメモです。
Ajax通信をするためのjQuaryを記述
ルーティングを設定
Controller側に処理を記述
Ajax通信をするためのjQuaryを記述
$("div#source_form").click(function(){ $.ajax({ url: "sources/set_content", type: "GET", data: {content : $("div#editor").text()}, datatype: "html", success: function(data){ //成功時の処理 }, error: function(data){ //失敗時の処理 } }); });
jQuary自体がわからないという方はこちらを参考にすれば分かるかと思います。
http://railsdoc.com/jqueryjQuery - - Railsドキュメント
- url: 通信先のURLです。基本的にはルーティング設定を行ったあとの
rake routes
で表示されるURLをそのまま入力すれば大丈夫だと思います。
- type: get or post 通信方式を記述します。
- data: Controllerに送信したいデータです。複数送信することも出来ます。(ここでは1つです)
- datatype: サーバから返されるデータ型です。
ルーティングを設定
root.rbに記述します
get"sources/set_content"
rake routesで正しく設定ができたか確認すると良いと思います。
Controller側に処理を記述
def set_content @tmp = params[:content] render nothing: true end
params[送信データ名]で値を受け取ります。
レンダリングするViewがない場合は上のように記述してください。
終わり