我正在试图弄清楚如何允许用户单击索引页面上的链接或按钮以清除应用程序数据库中的所有对象,然后重定向到新清除的索引页面。因此,对于示例模型Article
,我希望它应该与Article.destroy_all
方法有关,我希望它是一个简单的解决方案,但我尝试了一些变化,我只是不确定如何实际实现它。
答案 0 :(得分:3)
所以这将是你控制器中的另一个动作。如果我们正在处理文章,那么控制器将是:
class ArticlesController < ApplicationController
def indef
@articles = Article.all
end
def destroy_them_all
Article.destroy_all
redirect_to articles_path
end
end
在视图中,您希望用户单击按钮以销毁所有文章:
<%= link_to 'Destroy them all', destroy_them_all_path, method: :delete, confirm: 'Are you crazy?' %>
不要忘记在路线文件中添加命名路线:
match '/articles/destroy_them_all', to: 'Articles#destroy_them_all', via: :delete
那应该有用。虽然您可能需要检查rake routes
以确保我destroy_them_all_path
正确无误。
答案 1 :(得分:0)
试试这个:
物品管理员:
def destroy_all
@Articles = Article.all
@Articles.each do |a|
a.destroy
end
redirect_to articless_path, notice: "Delted"
end
路线:
post "articles/destroy_all"
视图:
<%= form_tag ({ :controller => 'articles', :action => 'destroy_all' }) do%>
<%= submit_tag 'destroy all'%>
<% end %>