2014-02-06 4 views
0

Я пытаюсь устранить неполадку, почему этот вызов ajax стандартного метода Destroy не будет работать. От взгляда на мой HTML-источник, я думаю, что это может быть проблемой либо с тем, как я создаю divs, используя div_for OR, это имеет какое-то отношение к моим js. Я затрудняюсь для устранения неполадок javascript.Rails 4 Ajax не отвечает

Мое мнение:

<% @quizzes.each do |quiz| %> 
    <%= div_for quiz do %> 
    <tr> 
     <td> 
      <%= link_to quiz.name, quiz_review_path(quiz.id) %> 
     </td> 
     <% if quiz.finished? %> 
     <td> 
      <%= link_to "Results", quiz_results_path(quiz) %> 
     </td> 
     <% elsif quiz.questions.first != nil %> 
     <td> 
      <%= link_to "Take quiz", question_answer_path(question_id: quiz.questions.first.id) %> 
     </td> 
     <% else %> 
     <td> 
      <%= link_to "Broken, delete!", nil %> 
     </td> 
     <% end %> 
     <td> 
      <%= link_to "Delete", quiz_path(quiz), method: 'delete', remote: true %> 
     </td> 
    </tr> 
    <% end %> 

Контроллер:

def destroy 
    @quiz = Quiz.find(params[:id]) 
    @quiz.destroy 

    respond_to do |format| 
     format.html { redirect_to quizzes_path } 
     format.js 
    end 
end 

Мои взгляды/викторинах/destroy.js

$(document).ready(function() { 
    $('#<%= dom_id(@quiz) %>').fadeOut(); 
}) 

Глядя на рельсах S бревен, я может видеть, что запрос удаления приходит и обрабатывается js, поэтому мой b Угадайте, это либо проблема с div_for, либо dom_id ИЛИ мой js плохой (весьма вероятно).

+2

Если вы используете firebug, вы можете увидеть, что добавляется в консоли. См. Также события Rails UJS, которые помогут вам отладить https://github.com/rails/jquery-ujs/wiki/ajax – Benj

+0

, уничтоженный ваш «@quiz» теперь берет резервную копию перед уничтожением «@backup = @quiz», а затем уничтожает он, а затем в js.erb используйте «@backup» –

+0

ура, с firebug. Я вижу, что с div_for происходит что-то неуловимое. Он создает divs, но, похоже, не обворачивает правильный контент. Использование divs вокруг строки таблицы является nono? – user2936314

ответ

0

Исправлено: попытка обернуть с помощью div_for создала неверный html. Удалены таблицы, и теперь ajax отлично работает.

Смежные вопросы