てくのろーぐ

新卒エンジニアの日常ログ

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ドキュメント


.ajaxAjax通信をするために必要な記述です。

  • 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がない場合は上のように記述してください。


終わり