我有一个单页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代码。在不将用户发送到其他页面的情况下删除项目的方法是什么?
答案 0 :(得分:0)
修改控制器中的destroy方法,并删除redirect_to路径
def destroy
@to_do_list = Todolist.find( params[:id] )
@to_do_list.destroy
#redirect_to this_path
#Remove the redirect_to
end
然后你可以让ajax从页面中删除元素
答案 1 :(得分:0)
生成的链接与手动锚标记之间的区别在于您缺少数据远程=&#34; true&#34;你的锚标签属性。
此外,您可能希望通过指定其名称(如render&#34; partialname&#34;)来代替render:json,而不是渲染:json。 redirect_to导致重定向,而渲染允许您保持在同一页面上并使用现在删除的项目呈现更新的列表部分。