簡體   English   中英

從ActiveRecord觀察者調用rake任務

[英]Invoke rake task from ActiveRecord observer

我可以做以下事情嗎?

def ModelObserver < ActiveRecord

   def after_save
     Rake::Task[name].invoke
   end

end

目前,這將返回以下錯誤:

Don't know how to build task 'name'

任何想法?

使用系統命令:

def ModelObserver < ActiveRecord

   def after_save
     system "rake #{name}"
   end

end

考慮使用延遲作業或類似的插件來處理后台執行。 在觀察者(或控制器)中,只需通知后台作業守護程序,它應該執行一些操作,而不是直接運行此任務。

在Rails3中,如果您仍然想調用rake任務,如下所示:

Rake::Task[name].invoke

你必須把

[Application].load_tasks

在調用命令之前,其中application是您的應用程序名稱。 例如我不得不放

Ead::Application.load_tasks

我想您必須先加載Rake環境和Rakefile。 我不會嘗試調用成熟的命令行來做到這一點。 您可能需要使用Rake API中的“導入”

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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