簡體   English   中英

如何將一個引擎安裝在導軌中的另一個可安裝引擎中?

[英]How to mount one engine in another mountable engine in rails?

當前,在config / routes.rb中的主應用程序中安裝了兩個引擎,如下所示。

在'/ search'處掛載firstEngine :: Engine並在'/ add'處掛載secondEngine :: Engine

我想將firstEngine的安裝從應用程序轉移到secondEngine。 換句話說,如何將一個引擎安裝在另一個可安裝引擎中? 任何幫助表示贊賞。

我也一直試圖將一個引擎安裝在另一個引擎上,這就是我到目前為止所得到的:

#file myapp/config/routes.rb
mount Bar::Engine => "/bar"

#file myapp/Gemfile
gem 'bar', :path => '../bar'

項目結構是這樣的:

my_project_folder
|
+-myapp
|
+-酒吧
|
+-baz

#file bar/config/routes
mount Baz::Engine => '/baz'

我在將Baz安裝到Bar上時遇到麻煩,只需添加

#file bar/Gemfile
gem: 'baz', :path => '../baz'

無法正常工作,我未初始化常量Baz :: Engine錯誤

像這樣解決它:

#file bar/lib/engine.rb
require File.join(File.expand_path('../../../baz/lib', File.dirname(__FILE__)), 'baz')

現在baz.rb抱怨:無法加載此類文件-baz / engine所以我更改了:

#file baz/lib/baz.rb
require_relative './baz/engine' # instead of require 'baz/engine'

現在我的/ bar / baz路由正在運行。 這是一個非常丑陋的解決方法,我將尋找更清潔的解決方案,但我的兩個可安裝插件都在開發中,我僅從源頭使用它們,因此暫時不介意。 希望它至少能有所幫助。 如果您找到更好的解決方案,請告訴我。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM