我创建了以下脚本来擦除 mysql 数据库(并重置每个表的主键)。我想知道我应该如何重构它,以及如何从 ActiveSupport 中引入复数形式。
代码:
MODEL_DIR = File.expand_path("app/models")
Dir.chdir(MODEL_DIR)
files = Dir.glob(File.join("**", "*.rb"))
files.map! do |file|
file[0..-4] + "s"
end
print "This will WIPE your database. Continue? (y/n): "
if $stdin.gets.chomp.downcase == "y"
files.each do |f|
puts "Wiping #{f}.."
ActiveRecord::Base.connection.execute "TRUNCATE TABLE #{f};"
end
else
puts "Terminating script..."
end
我的逻辑是,models 目录中没有 .rb 和复数形式的每个文件都代表数据库中的一个表,这就是我获得与该应用程序相关的表列表的方式。
我用这个命令运行它:rails runner script/cleandb.rb
这应该如何重构,我该如何引入复数形式?