私はRails 3、Jquery-UJS、およびJqueryを使用しています。私はRails3とJqueryの作業設定があります。リンクをクリックしてJavascriptからRailsコントローラに変数を送信しようとしています。Jqueryを使用してJavascript変数をRails 3コントローラに送信
私の現在のアプローチでは、次のようにjsを使用してajax呼び出しを行い、msg文字列を渡しています。
$("#select_link").click(function()
{$.ajax({
type: 'POST',
url: 'http://your_url/jmsg',
data: {msg: "hello world"},
;}
});
});
このコードをapplication.jsファイルに含める必要がありますか?私.html.erbファイルで
私は私のコントローラで
<%= link_to "Send variable", jmsg_path, :remote => true %>
を持って、私は今まで
def jmsg
@message= params[:msg]
respond_to do |format|
format.js
end
end
を持って、私は私の@messageにjavascriptの変数を取得することができていませんでしたインスタンス変数
EDIT:
私は示唆したように変更を加えました。私はFiebugを使ってXHRをチェックすると、私はPOSTアクションのために一時的に移動302を参照してください、私は
@message=params[:msg]
を行う際ただし、変数@messageは(POSTパラメータMSGが正しくかかわら設定されている)に設定されていません。
$("#show_message").html("<%= @message %>")
EDIT2:私はFirebugのを確認した場合、それは二つの動作が今があることを示しています $( "#のshow_message")HTML( "")
私の.jsビューがある - 応答があります。 1. POST/jmsg - 応答@message = "Hello World" の 2. GET/jmsgと - 応答@メッセージ= "と"
ありがとう! data:{msg: "hello world"} msgパラメータと値 "hello world"を持つPOSTを与えます(Firebugでチェックします)。私はまだ変数@メッセージを設定することはできません(上記の私の質問を編集した上で) –
Iveが私のソリューションを更新しました。助けてくれると助かります – raymondralibi
ありがとう! Jsonデータは、POST/jmsg(Firebugでチェック)で受信されています。しかし、@ message変数は、コントローラのredirect htmlオプションのためにGET/jmsgを取得するため、永続化されません。 (ステートレスコントローラ)。どうすればこれを避けることができますか? (私はデータベースに保存することが解決であることを認識しています) –