簡體   English   中英

如何從rake任務調用控制器操作?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM