0

这是我尝试 AJAX 和 jQuery 的第一天,所以我仍然对基础知识有些摸不着头脑。

我的很多代码都基于在这个站点上找到的内容。

在销毁对象时,我希望更新索引页面上的对象列表。

控制器动作:

def destroy
  @artist = Artist.find(params[:id])
  @artist.destroy
  @artists = Artist.all
end

销毁.js.erb:

$("#post_errors").hide(300);
$("#flash_notice").html("<%= escape_javascript(flash[:notice]) %>");
$("#flash_notice").show(300);
$("#posts_list").html("<%= escape_javascript( render(partial: "list")) %>");

_list.html.erb:

<% for artist in @artists %>
  <tr>
    <td><%= artist.display_name %></td>
    <td><%= link_to "Destroy", artist, remote: true, confirm: "Are you sure?", method: :delete %></td>
  </tr>
<% end %>

index.html.erb:

<div id="artist_list"><%= render partial: 'list' %></div>

单击销毁链接时,将执行销毁对象的数据库操作并删除对象,但如果不刷新页面,索引页面上的列表不会更新。

有什么明显的我做错了吗?

4

1 回答 1

0

您可以尝试对您的 JS 进行此更改:

$("#artist_list").html("<%= escape_javascript( render(partial: "list")) %>");

因为,如果我正确理解了您的代码,您正在尝试更改 ID 为“posts_list”的 DOM 对象的 html。

于 2012-10-07T04:32:36.713 回答