创建辅助删除选项

时间:2012-11-08 04:31:47

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

我创建了一个用户随着时间的推移填充status_updates的表。每个状态都可以单独删除。

这是通过调用status_update_controller中的destroy方法并在名为correct_user的私有方法中标识特定的status_update来实现的。

所以基本上它看起来像这样:

在status_update_controller的顶部

before_filter :correct_user, only: :destroy

破坏方法

def destroy
    @status_update.destroy
    redirect_to root_url
end    

和私人正确的用户方法

private

    def correct_user
      @status_update = current_user.status_update.find_by_id(params[:id])
      redirect_to root_url if @status_update.nil?
    end  

我的问题是:

如何为特定用户选择所有status_updates并使用按钮或链接销毁它们?

谢谢!

1 个答案:

答案 0 :(得分:0)

StatusUpdatesController内部定义一个这样的动作:

def delete_all
  current_user.status_updates.delete_all
end

您还需要路由到此操作:

resources :status_updates do
  collection do
    delete :delete_all
  end
end

并按下按钮:

button_to "Delete the everything", delete_all_status_updates_path, :method => :delete