用于清除Rails中数据库的链接或按钮

时间:2013-07-22 18:08:58

标签: ruby-on-rails ruby-on-rails-3 ruby-on-rails-3.2

我正在试图弄清楚如何允许用户单击索引页面上的链接或按钮以清除应用程序数据库中的所有对象,然后重定向到新清除的索引页面。因此,对于示例模型Article,我希望它应该与Article.destroy_all方法有关,我希望它是一个简单的解决方案,但我尝试了一些变化,我只是不确定如何实际实现它。

2 个答案:

答案 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 %>