2

这是相当直接的代码,但不知何故,当我单击“删除”时,记录会被删除,但在我刷新它之前它不会显示在索引页面上。我正在使用 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();

现在,当我单击删除链接时,帖子被删除,但索引文件的输出没有更新,只有当我刷新它时,它才会显示没有删除项目的新列表。知道我错过了什么吗?

谢谢

编辑 - 好的,我能够解决这个问题,问题是 destroy.js.erb 中的 jquery 代码错误,我调用了错误的 div

4

2 回答 2

0

@post_id = @post.id 在您销毁帖子之前,请在控制器处设置此设置 。

在 js.erb 文件中使用这一行 $('#edit_post_<%= @post_id %>').remove();

因为删除帖子后,@post.id 在 js 文件中没有任何意义。

于 2013-01-03T17:29:58.517 回答
0

请确保您@post.destroy在渲染之前已在控制器中添加了方法format.js。目前您只是从 html source 中删除。为了反映变化,你必须改变整体的价值(从database

于 2013-01-03T18:07:13.733 回答