【问题标题】:Should I need to customize the generated dummy app in a Rails 4 engine?我是否需要在 Rails 4 引擎中自定义生成的虚拟应用程序?
【发布时间】:2016-02-18 00:55:09
【问题描述】:

当您生成 Rails 引擎时,一个生成的产品是test/dummy 下的完整基本 Rails 应用程序。您希望能够在应用程序的上下文中测试引擎是有道理的,但令我惊讶的是,即使对于像 rake db:migrate 这样的非测试活动,似乎也需要 test/dummy 应用程序。

我尝试从Rakefile 中删除对虚拟应用程序的引用,但它似乎被硬编码到引擎系统中(例如,参见engine.rake 中对APP_RAKEFILE 的引用)。

我正在尝试将 Rails 应用程序转换为引擎,并在配置、加载顺序等方面遇到各种问题。当我放置断点并查看调用堆栈时,看起来至少有一些问题是原始应用程序中的配置脚本(例如boot.rb)与生成的虚拟程序之间的差异。

有人能解释一下为什么需要这个虚拟应用程序以及它提供什么功能吗?我应该期望避免使用“原始”生成的虚拟对象,还是不可避免地对其进行修改/自定义?

【问题讨论】:

    标签: ruby-on-rails-4 rails-engines


    【解决方案1】:

    您通常不必触摸虚拟应用程序。虚拟应用程序提供了一个准系统应用程序来运行您的引擎(请记住,引擎不能单独运行)。当您尝试在引擎的根目录中执行“应用程序级”任务(例如运行 rake 任务或测试)时,它被用作应用程序。通过这种方式,引擎保持自包含,并且不必依赖外部应用程序来提供引擎应该运行的上下文。我相信虚拟应用程序仅用于 rake 任务和测试框架。

    【讨论】:

      猜你喜欢
      • 2014-06-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多