Koleksiyonları temizlemek için bazı düğmelerim var, böylece sunucuyu yeniden başlatmadan, geliştirme/sınama sırasında web sitesini bozulmamış duruma geri yüklemek kolaydır.Rails uygulamasından tohumlar.rb yürütme
Bir denetleyici eyleminin içinde seeds.rb'nin içeriğini nasıl uygularım?
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
Not: benim seeds.rb dosyasının içeriği bu yüzden, ben DB hiçbir yinelenen veri olacağını o milyarlarca çalıştırabilir, verinin varlığını kontrol Koşullamalar ve yöntemlerinin kapsamlı kullanan Sadece ne gittiğimin% 1'ini geri yüklemek için bile çalıştırabilirim (burada dev/test ortamları konuşuyoruz, zaman/kaynak basıncı yok). Bunun iyi bir fikir değil farkındayız varsayarsak, ve onu <rake_command>
komut satırından rake
sonra aday olacağını ifadedir nerede Rake::Task["<rake_command>"].execute
kullanabilirsiniz, güvenlik kaygıları içerebilir
Benzer soru [Denetleyicide komisyon görevi çalıştır] (http://stackoverflow.com/q/1170148/567863)? –