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