我有一些按鈕來清除集合,因此很容易在開發/測試期間將網站恢復到原始狀態,而無需重新啓動服務器。從Rails應用程序執行seeds.rb
如何在控制器動作內執行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文件的內容廣泛使用的是檢查數據是否存在的條件語句和方法,我可以運行十億次會有在DB沒有重複的數據,所以即使只恢復1%的消耗(我們在這裏說的是開發/測試環境,沒有時間/資源壓力),我也可以運行它。
與[在控制器中運行rake任務]類似的問題(http://stackoverflow.com/q/1170148/567863)? –