[英]How can I call a controller action from a rake task?
我有一個控制器動作,生成許多excel報告,這需要大約10分鍾。 有時我會從我的webapp中調用它,這就是為什么它是一個動作。
但我也想創建一個rake任務來運行它,所以我可以安排它自動運行一晚。
有什么辦法嗎?
你能從你的模特處理報告生成嗎? 無論如何 ,模型應該完成大部分工作,並且可以從Rake任務訪問:
task :reports => :environment do
...
# Do stuff with your models.
end
我想你必須將代碼移到模型中。 由於在模型中放置關於輸出渲染的知識是不好的,我建議將所有業務邏輯和數據操作放在模型中,然后將渲染代碼放在rake任務中。 這將使rake任務類似於Web上使用的控制器 - 保持關注點的分離。
您可以查看ActionView :: Base並從那里開始研究如何觸發模板的渲染。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.