2010-03-24 32 views
7

Bir dizi excel raporu üreten bir denetleyici eylemim var, bu işlemin yapılması yaklaşık 10 dakika sürüyor. Bazen webapp'ımdan derim, bu yüzden bu bir eylemdir.Bir sorgu görevinden denetleyici eylemini nasıl çağırabilirim?

Ayrıca, bunu çalıştırmak için bir komisyon görevi oluşturmak istiyorum, bu nedenle otomatik olarak gece çalışacak şekilde zamanlayabilirim.

Bunu yapmanın herhangi bir yolu var mı?

+0

Diğerlerinin söylediği gibi, kodu bir modele taşımanız gerekir. Denetleyicilere yapılan işlerin yapılması kötü bir uygulamadır. – kikito

cevap

3

Rapor oluşturma işlemlerini modelinizden halledebilir misiniz? Modeller should be doing most of the work anyway ve Rake görevleri ulaşılabilir:

task :reports => :environment do 
    ... 
    # Do stuff with your models. 
end 
+1

Sanırım, Excel raporlarını oluşturmak için XML şablonları oluşturmam gerekiyor – Janak

3

ben size modele kodunuzu taşımak gerekecek düşünüyorum. Modellerde çıktı oluşturma hakkında bilgi vermek kötü olduğu için, tüm iş mantığını ve veri manipülasyonunu modele koymanızı öneriyorum, ancak render kodunu rake görevinize koyun. Bu, komisyon görevini web'de kullanılan denetleyiciye benzetir - endişelerin ayrılmasını sağlar.

ActionView :: Base'ye bakabilir ve şablonların oluşturulmasını nasıl tetikleyeceğinizi öğrenmek için oradan çalışabilirsiniz.

İlgili konular