可安装的发动机与cron(每当宝石)

pie*_*erk 8 ruby ruby-on-rails whenever rails-engines

是否可以使用cron(通过when gem)直接在可安装的引擎模型上运行任务.我认为cron无法从主应用程序启动,因为可安装引擎应该是隔离的.

我可以在普通的rails应用程序中使用它并且它工作得很好,但我需要以引擎方式运行任务.

谢谢

mgu*_*mon 3

您不能单独使用Rails Engine并直接执行任务,例如 Rake 任务或调用模型。将 Rails 引擎视为迷你 Rails 应用程序。它为安装父 Rails 应用程序提供功能和特性。就其本身而言,引擎是不完整的。将引擎安装到 Rails 应用程序后,它可以访问正确启动和操作所需的所有配置和初始化程序。

已安装引擎的 Rake 任务将继承到父 Rails 应用程序中。执行以下操作应包括引擎中的 Rake 任务列表

rake -T
Run Code Online (Sandbox Code Playgroud)

Rails runner中,您还可以执行已安装的 Rails Engine 的模型、库等。当访问引擎的功能时,您必须使用引擎的命名空间。以下是Rails 指南中用于从引擎访问模型的示例:

Blorgh::Post.find(1)
Run Code Online (Sandbox Code Playgroud)