运行 rails 作为引擎和应用的应用
Running rails app both as engine and app
我正在将一个 Rails 应用程序(例如 appA)转换为引擎,以便我可以将其连接到另一个 Rails 应用程序(例如 appB)。但是 appA 也必须 运行 作为 Rails 应用程序。那是因为顾客可以购买
- appA 或
- appB 与 appA。没有只买appB的选项。
在 rails oficial guide 之后,我进行了(除其他外)以下更改:
- 在
routes.rb
中将 Rails.application.routes.draw
更改为 ActionPlan::Engine.routes.draw
。
已创建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)
.
我想我应该以某种方式在 application.rb
文件中初始化 ActionPlan::Engine
,但我不知道该怎么做。
那么是否可以在rails中构建一个app/engine比如appA?如果是,我该如何解决这个问题?
经过一些研究并与一些朋友交谈后,我发现用 rails 做这样的想法是不可能的,但你可以创建另一个 rails 应用程序(比如 appC)并且仅将其用于 运行 您的引擎,即 appC 是一个愚蠢的 rails 应用程序,仅用于 运行 您的引擎。
我正在将一个 Rails 应用程序(例如 appA)转换为引擎,以便我可以将其连接到另一个 Rails 应用程序(例如 appB)。但是 appA 也必须 运行 作为 Rails 应用程序。那是因为顾客可以购买
- appA 或
- appB 与 appA。没有只买appB的选项。
在 rails oficial guide 之后,我进行了(除其他外)以下更改:
- 在
routes.rb
中将Rails.application.routes.draw
更改为ActionPlan::Engine.routes.draw
。 已创建
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)
.
我想我应该以某种方式在 application.rb
文件中初始化 ActionPlan::Engine
,但我不知道该怎么做。
那么是否可以在rails中构建一个app/engine比如appA?如果是,我该如何解决这个问题?
经过一些研究并与一些朋友交谈后,我发现用 rails 做这样的想法是不可能的,但你可以创建另一个 rails 应用程序(比如 appC)并且仅将其用于 运行 您的引擎,即 appC 是一个愚蠢的 rails 应用程序,仅用于 运行 您的引擎。