Добавление 1 в переменную экземпляра, то есть в частичную, визуализируется через JQuery. Rails3 - PullRequest
0 голосов
/ 11 февраля 2011

Привет, ребята, так что я понимаю, что это может быть немного запутанным, но вот как выглядит мой код, и что я пытаюсь сделать:

#new.html.erb

<% @tag_counter = 0 %>

Здесь код Javascript, который говорит, что при нажатии определенной кнопки добавьте частичный _tag.html.erb к div ниже

#_tag.html.erb

<div id="tag-id-<%= @tag_counter %>">Div here</div>
<% @tag_counter = @tag_counter+1 %>

Итак, у меня проблема в том, что значение @tag_counter не меняется. Его оставшийся в 0, и каждый добавленный div имеет тот же идентификатор. Любая идея, как я могу сделать эту работу?

Ответы [ 3 ]

0 голосов
/ 11 февраля 2011

Посмотрите здесь: http://guides.rubyonrails.org/layouts_and_rendering.html#using-partials

В 3.4.7 вы увидите, что счетчик существует для партиалов, просто используйте его в Rails.

0 голосов
/ 11 февраля 2011

Я делаю что-то подобное, хотя, возможно, это не тот ответ, который вы ищете.

Когда кто-то голосует в моем приложении, у меня подается сигнал через AJAX.

$(".vote_link").live("click", function (){
    $.ajax({type: "GET", url: $(this).attr("href"), dataType: "script"});
    return false;
});

Это загружает href, который нацелен на файл js, который говорит это:

== $(".event_#{@event.id}_score").html("#{ escape_javascript(@event.score.to_s)}");

Событие предназначено для его уникального идентификатора с его классом, и Jquery обрабатывает замену только числа, а не загрузку всей частикак то, что, как я полагаю, вы пытаетесь сделать.

0 голосов
/ 11 февраля 2011

Каждый _tag.html.erb отображается новым HTTP-запросом и будет иметь все переменные, независимые от всех других вызовов. Также обратите внимание, что ваш Ruby-код не имеет доступа к странице, кроме тех, которые явно предоставляются обратным вызовом, поэтому вы не можете проверить, что уже есть на странице.

Либо включите в запрос счетчик (из JavaScript), либо установите его после факта (также из JavaScript), либо создайте случайные идентификаторы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...