是否可以使用cron(通过when gem)直接在可安装的引擎模型上运行任务.我认为cron无法从主应用程序启动,因为可安装引擎应该是隔离的.
我能够在普通的rails应用程序中使用它并且它工作得很好,但我需要以引擎样式的方式运行任务.
谢谢
解决方法
您不能单独使用
Rails Engine并直接执行任务,例如Rake任务或调用模型.将Rails引擎视为迷你Rails应用程序.它为挂载父Rails应用程序提供功能和特性.引擎本身就不完整了.将引擎安装到Rails应用程序后,它可以访问启动和正常运行所需的所有配置和初始化程序.
已安装的引擎的Rake任务将继承到父Rails应用程序中.执行以下操作应包括引擎中的Rake Tasks列表
rake -T
从Rails runner开始,您也可以执行已安装的Rails Engine的模型,库等.访问Engine的功能时,您必须使用Engine的命名空间.以下是Rails Guide中用于从引擎访问模型的示例:
Blorgh::Post.find(1)