我有一些清除集合的按钮,因此在开发/测试期间很容易将网站恢复到原始状态,甚至无需重新启动服务器。
如何在控制器操作中执行seeds.rb的内容?
def purge
if Rails.env.production?
should_not_happen(severity: :armageddon)
else
# Well at least restore one admin account !
User.all.each(&:destroy)
regenerate_main_admin_accounts # Here I need to replay the content of `seeds.rb`
redirect_to(admin_dashboard_path)
end
end
注意:我的seeds.rb文件的内容大量使用检查数据存在的条件和方法,我可以运行十亿次数据库中没有重复数据,所以我可以运行它即使只恢复了已经消失的1%(我们在这里谈论开发/测试环境,没有时间/资源压力)。