ruby-on-rails - 带有 cron 的可安装引擎(每当 gem 时)

标签 ruby-on-rails ruby rails-engines whenever

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

我可以在普通的 Rails 应用程序中随时使用它,而且效果很好,但我需要以引擎风格的方式运行任务。

谢谢

最佳答案

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

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

rake -T

来自Rails runner ,您也可以执行已安装的 Rails 引擎的模型、库等。访问引擎的功能时,您必须使用引擎的命名空间。这是来自 Rails Guide 的示例从引擎访问模型:

Blorgh::Post.find(1)

关于ruby-on-rails - 带有 cron 的可安装引擎(每当 gem 时),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12121067/

相关文章:

ruby-on-rails - 使用 Rails 4 和 postgres 查询范围内日期的最简单方法是什么?

javascript - 显示部分统计的记录

ruby - Redmine 在 Linux 上启动缓慢

ruby-on-rails - 在Rails引擎 View 中缺少设计路线助手

javascript - 在 Rails 项目中包含无关的 javascript 库的技术注意事项

ruby-on-rails - Redis 中带有前缀的元素的统计信息

Ruby 1.9 正则表达式编码

ruby-on-rails - 如何在 Ruby 中输出一年中每个季度的日期范围?

ruby-on-rails-3 - Rails 3引擎可以从其父应用程序访问模型吗?

ruby-on-rails - 从 Engine in Rails 3.x 应用程序重新打开模型和 Controller