0
我很努力地解決爲什麼這個ajax調用標準的Destroy方法不起作用。從我的HTML源代碼看,我認爲這可能是一個問題,無論我如何使用div_for創建div,或者它與我的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();
})
通過觀察Rails的小號日誌,我可以看到刪除請求進入並由js處理,所以我的b估計是它是div_for和dom_id的問題,或者我的js不好(很可能)。
如果你使用螢火蟲,你可以看到在控制檯中附加了什麼。另請參閱Rails UJS事件,以幫助您調試https://github.com/rails/jquery-ujs/wiki/ajax – Benj
您的「@quiz」現在被銷燬在銷燬「@backup = @quiz」之前進行備份,然後銷燬它,然後在js.erb中使用「@backup」 –
歡呼聲,與螢火蟲我可以看到有什麼東西與div_for進行 - 它創造了divs,但似乎並沒有包裝正確的內容。在表格行周圍使用div是nono? – user2936314