Как установить переменную rails равной переменной javascript? - PullRequest
3 голосов
/ 26 июля 2011

Я хочу сделать что-то похожее на Как передать переменную Javascript в Rails Controller? , но я не могу заставить ее работать в моих целях. Я использую перетаскивание jQuery для переноса «элементов» в «стручки». Вот мой код:

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 моему контроллеру? В идеале, я хотел бы передать это действию обновления. П.С .: Я совсем не знаю AJAX, поэтому, если это единственный способ, пожалуйста, предоставьте подробности ...

1 Ответ

7 голосов
/ 26 июля 2011

Единственный способ передать данные со стороны клиента браузера в приложение rails - это HTTP. А для выполнения HTTP в JavaScript вы используете XHR (также называемый AJAX). Вы не можете сделать это в шаблонах, как вы предлагаете в своем примере кода, так как шаблон отображается на сервере Rails и оценивается как HTML и JavaScript на клиенте. Нет встроенного соединения между клиентом / браузером и сервером.

Предполагается, что jQuery:

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

Затем вам нужно настроить контроллер для ответа на / some / url и делать все, что вам нужно сделать с params[:pod_id] и params[:id].

...