2013-01-03 32 views
2

這是相當直接的代碼,但不知何故,當我點擊'刪除'記錄時,刪除但它不會顯示在索引頁面上,直到我刷新它。我正在使用jquery來顯示所有記錄。在rails中使用Ajax/jQuery刪除行,有些東西不起作用

控制器中,我在破壞行動

format.js 
在Index.html.erb

,我已經加入

<td><%= link_to 'Destroy', post, method: :delete, data: { confirm: 'Are you sure?' }, :remote => true %></td> 
在destroy.js.erb

有加,我已經加入

$('#edit_post_<%= @post.id %>').remove(); 

現在,當我點擊刪除鏈接,帖子被刪除,但索引文件的輸出不會更新,只有當我參考resh它,它顯示沒有刪除項目的新列表。任何想法我錯過了什麼?

感謝

編輯 - 好吧,我能解決這個問題,這個問題是destroy.js.erb壞jQuery代碼,我調用了錯誤的div

+0

如果您在開發人員工具中觀看網絡選項卡,是否從服務器獲得響應?它是否向您發送您期望的JavaScript? – chrisbulmer

+0

你的行爲是否像JS一樣「銷燬」了過程?您可以在您的服務器控制檯中看到它,例如在我的機器上:'開始獲取「/settings/computed_labs.yaml」for 127.0.0.1 at 2013-01-03 12:01:50 -0500 Processing by Settings :: ComputedLabsController#索引作爲YAML' – MrYoshiji

+0

**它顯示沒有刪除項目的新列表**這是不是刪除與點擊刪除的鏈接? – Jai

回答

0

在控制器設置此 @post_id = @post.id 在你銷燬郵件之前。

而在js.erb文件,請使用此行 $('#edit_post_<%= @post_id %>').remove();

因爲刪除的帖子後,@ post.id並不意味着js文件任何東西。

+0

不幸的是,這並沒有奏效,該帖子被刪除,但它不會從列表中刪除,除非我刷新它 – iCyborg

0

請確保您在控制器中添加了@post.destroy方法,然後再渲染format.js。目前你只能從html源代碼中刪除。要反映更改,您必須更改整體值(從database