我可以执行以下操作吗?
def ModelObserver < ActiveRecord
def after_save
Rake::Task[name].invoke
end
end
目前,这会返回以下错误:
Don't know how to build task 'name'
有什么想法吗?
答案 0 :(得分:3)
使用系统命令:
def ModelObserver < ActiveRecord
def after_save
system "rake #{name}"
end
end
答案 1 :(得分:2)
考虑使用delayed job或类似的插件来处理后台执行。在观察者(或控制器)中,只需通知后台作业守护程序,它应该处理一些操作,而不是直接运行此任务。
答案 2 :(得分:2)
在Rails3中,如果你仍然想要像这样调用rake任务:
Rake::Task[name].invoke
你必须把
[Application].load_tasks
在invoke命令之前,其中application是您的应用程序名称。例如,我必须把
Ead::Application.load_tasks
答案 3 :(得分:0)
我想你必须首先加载Rake环境和Rakefile。我不会尝试调用fullblown命令行来执行此操作。您可能需要使用Rake API
中的“导入”