运行rails应用程序作为引擎和应用程序

时间:2016-12-23 16:20:35

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

我正在将Rails应用程序(比如appA)转换为引擎,以便我可以将它挂钩到另一个Rails应用程序(比如appB)。但是 appA必须单独作为Rails应用程序运行。那是因为顾客可以购买

  1. appA或
  2. appB与appA。没有选择只购买appB。
  3. 关注rails oficial guide我做了(其中包括)更改后的内容:

    • Rails.application.routes.draw中将ActionPlan::Engine.routes.draw更改为routes.rb
    • 创建了lib/action_plan/engine.rb,内容如下所示:

      module ActionPlan
        class Engine < ::Rails::Engine
          isolate_namespace ActionPlan
        end
      end
      

    现在,当我运行rails s时,我得到/action_plan/config/routes.rb:1:in '<top (required)>': uninitialized constant ActionPlan::Engine (NameError)

    我想我应该以某种方式在ActionPlan::Engine文件中初始化application.rb,但我不知道它是怎么回事。

    那么可以在appA中构建一个app / engine吗?如果是,我该如何克服这个问题?

1 个答案:

答案 0 :(得分:0)

经过一些研究并与一些朋友交谈后,我发现使用rails无法做出这样的想法,但你可以创建另一个rails应用程序(比如说appC)并仅用它来运行你的引擎,即appC是一个愚蠢的rails应用程序,仅用于运行引擎。