2011-07-26 5 views
2

How to pass a Javascript variable to Rails Controller?と似たようなことをしたいのですが、私の目的のために働かないようです。私はドラッグ&ドロップjQueryを使用して "アイテム"を "ポッド"に転送しています。ここに私のコードは次のとおりです。私は何をしたいかrails変数をjavascript変数と同じにするにはどうすればいいですか?

function onReceive(id,pod_id){ 
var id = id; 
var pod_id = pod_id; 
confirm("Add " +id + " to " + pod_id + "?"); 
} 

は本当にこのようなものです:

function onReceive(id,pod_id){ 
<% @pod_id = pod_id %> 
<% @id = id %> 
} 

しかし、私は解決策はそれほど容易ではないことを知っています。 idとpod_idをコントローラに渡すにはどうすればいいですか?理想的には、私はそれを更新アクションに渡したいと思います。 P.S .: AJAXはまったく知らないので、詳細を提供するには...

+0

最初に 'onReceive(id、pod_id)'メソッドが呼び出されましたか?それから値を取得して割り当てることができます。 – user482594

答えて

6

ブラウザクライアント側からレールアプリケーションにデータを渡す唯一の方法は、HTTP経由です。また、JavaScriptでHTTPを実行するには、XHR(AJAXとも呼ばれます)を使用します。テンプレートはRailsによってサーバー上でレンダリングされ、クライアント上ではHTMLとJavaScriptとしてエバークされるので、コードサンプルで示唆しているように、テンプレート内で行うことはできません。クライアント/ブラウザとサーバーの間にはインライン通信はありません。 jQueryのを想定し

function onReceive(id,pod_id){ 
    $.ajax({ 
     url: "/some/url", 
     data: {pod_id: pod_id, id: id} 
    }); 
} 

は、その後、あなたは/いくつか/ URLに対応するためのコントローラを設定し、あなたがparams[:pod_id]params[:id]を行う必要があるものは何でもする必要があります。

関連する問題