Некоторая проблема с Ajax on Rails

Я использую Ruby on Rails 2.3.8. У меня есть ссылка для голосования, при нажатии на которую выполняется следующее действие:

def vote
      render :update do |page|
          page.select(".divbrian").each do |d|
            page.replace_html d, "YA SEEE"
          end

          page.select('.d_voting_links_' + params[:post_id].to_s).each do |d|
            page.replace_html d, :partial => 'post_votes/voted'
          end
          page.select('.d_vote_count_' + params[:post_id].to_s).each do |d|
            page.replace_html d, Post.find(params[:post_id]).get_vote_count
          end
      end
end

В HTML столько элементов div класса «d_voting_links_», сколько сообщений отображается на странице html.

Я не знаю, почему после того, как я установил плагины Paperclip, Rails TinyMCE и Hpricot (все они в последней версии), эти запросы ajax перестали работать (действительно сумасшедшие).

Я ничего не менял в своем коде, я даже проверил свои предыдущие версии, в которых он работает, и ничего не изменилось, кроме этих плагинов.

Я также пытался создать простой div и вызвать его из того же действия, но он его не распознал (это произойдет, если я удалю «.» из запроса, но это будет искать идентификаторы, и мне нужно искать для класса).

Знаете ли вы о каких-либо известных проблемах между этими плагинами и этим синтаксисом ajax? Или, может быть, вы знаете, в чем может быть проблема?


person Brian Roisentul    schedule 17.11.2010    source источник
comment
Вызывается ли сейчас метод голосования? Поставьте точку останова и посмотрите, как работает этот метод?   -  person Zabba    schedule 18.11.2010
comment
Да. Действительно, блок render :update выполняется... но почему-то не находит ни одного div с этим классом, хотя он существует в HTML... ДЕЙСТВИТЕЛЬНО СТРАННО   -  person Brian Roisentul    schedule 18.11.2010
comment
Нет решения, но совет: html_escape звонки в params[:post_id].to_s   -  person Zabba    schedule 20.11.2010


Ответы (1)


Я не знаю, почему этот блок кода перестал работать... но теперь я понял, что без блока page.select он все равно будет работать и заменит все div именами этих классов.

person Brian Roisentul    schedule 22.11.2010