我有桌子(也许他们没有被称为)用户和帖子。我在Posts表中添加了很多测试帖子(也许它叫做数据库),所以我想把它擦掉。我知道我可以使用 rake db:reset ,但这也会擦除Users表。
有谁知道如何仅重置特定的表格?
答案 0 :(得分:7)
最好为此创建一个rake任务。如果你愿意,你甚至可以在'db'中命名它。即rake db:reset_unimportant_models
在那项任务中你可以做类似的事情:ModelName.delete_all
有关delete_all的更多信息,请点击此处:http://apidock.com/rails/ActiveRecord/Relation/delete_all
有关创建佣金任务的详细信息,请点击此处:http://jasonseifer.com/2010/04/06/rake-tutorial
以下是您可能会做的一个示例:
# lib/tasks/reset_unimportant_models_task.rake
namespace :db do
desc "Sequentially clears out the models I don't care about"
task :reset_unimportant_models => :environment do
puts "Clearing out the BlahModel model"
BlahModel.destroy_all
puts "Finished."
end
end
然后你会这样称呼:
rake db:reset_unimportant_models
当你运行rake -T
时,你会看到db:blah tasks
答案 1 :(得分:5)
虽然我同意创建一个rake任务是更好的解决方案,但有时你只是想进入并快速清除一些东西。
如果您运行rails console
,则可以从那里拨打ModelName.delete_all
。
认为这是一个糟糕的替代解决方案。 : - )
答案 2 :(得分:1)
或者您可以使用IRB控制台:
irb(main):001:0> Post.delete_all