On Fri, Dec 19, 2008 at 12:20 PM, DAZ <[email protected]> wrote:
>
> Hi,
>
> What is the best way to delete all members of a model?
>
> For example I have a tasks model and want to put a link in that will
> delete all tasks at once. Something like,
>
> @tasks = Task.all
> @tasks.each { |task| task.destroy }
If you need to allow callbacks to run or dependent associations to also be
destroyed, you can use Task.destroy_all. If you don't need those things,
Task.delete_all will be much faster.
> Do I need another action for this, and what should the link to it be?
You could add another route. For example,
map.resources :tasks, :collection => { :destroy_all => :delete }
In TasksController, you'd add something like
def destroy_all
Task.destroy_all
# redirect, render some RJS, etc.
end
In a view, you could
link_to "Delete all", destroy_all_tasks_path
You might want to put a confirmation on the link_to.
Regards,
Craig
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups "Ruby
on Rails: Talk" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/rubyonrails-talk?hl=en
-~----------~----~----~----~------~----~------~--~---