Рендеринг Js.erb только один раз - PullRequest
0 голосов
/ 27 марта 2011

У меня есть кнопка «Голосовать» в скрытом Div, который загружается с помощью pirobox. Ссылка на запуск:

<div class="inliner"><a href="#vid_<%=c.id%>" rel="inline-1000-500" class="pirobox_gall1"><h5><%=c.title%></h5></a></div>

и в скрытом div у меня есть следующее для моей кнопки голосования:

<%=button_to 'Vote',vote_path(:format=>:js,:id=>c.id),:remote=>true%>

и в контроллере у меня есть:

def vote
        @video=Video.find(params[:id])
        @video.increment!(:votes)

        respond_to do |format|

           format.js  { render :layout=>false }
        end

    end

наконец, в моем js.erb, у меня есть: $('p#success_<%=@video.id%>').fadeIn('slow').delay(1000).fadeOut('slow');

при нажатии на ссылку триггера в пиробокс загружается скрытое содержимое. Когда я нажимаю кнопку голосования, голосование увеличивается, а также отображается файл js.erb. Все работает нормально. Но теперь я закрываю всплывающее окно pirobox. Затем снова запускаю его и нажимаю кнопку голосования. Поле голосования увеличивается, но js.erb не отображается :( Как мне это исправить?

1 Ответ

0 голосов
/ 27 марта 2011

Давайте немного очистим ваш код;

Ваша кнопка:

<%= button_to 'Vote', vote_path(c), :remote => true %>

Ваш контроллер:

def vote
  @video = Video.find(params[:id])
  @video.increment!(:votes)
end

Ваш JS:

$('#success_<%= @video.id %>').fadeIn('slow').delay(1000).fadeOut('slow');

Теперь запустите Firebug и отследите ваши Ajax-вызовы через cosole

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