<href>删除项目而不将用户发送到另一个页面



我有一个单页rails应用程序,它在一个名为_new_list.html的文件(一个使用AJAX添加的文本/模板类型的脚本)中创建一个项目和删除链接,如下所示:

<a href="/to_do_lists/<%= list.id %>" data-method="delete">Delete</a>

问题是,该链接将用户发送到/to_do_lists/(列表id),而不是停留在同一页面中。erb中的删除链接适用于加载了erb的现有项目,如下所示:

  <%= link_to "Delete",
      to_do_list_url(list),
      :method => :delete,
      :remote => true %>

不幸的是,我认为我必须使用,因为我不能在模板中放入任何rails代码。在不将用户发送到另一个页面的情况下删除项目的方法是什么?

修改控制器中的销毁方法,并删除重定向到路径

def destroy
      @to_do_list = Todolist.find( params[:id] )
      @to_do_list.destroy
      #redirect_to this_path
      #Remove the redirect_to
end

然后您可以让ajax从页面中删除元素

生成的链接和手动锚点标记之间的区别在于,锚点标记上缺少dataremote="true"属性。

此外,您可能希望通过指定名称(如render"partialname")来渲染同一个分部,而不是render:json。redirect_to会导致重定向,而render允许您停留在同一页面上,并将更新后的列表部分呈现为已删除的项目。

相关内容

最新更新