Rails引擎:导出两组路线

问题描述 投票:0回答:1

我有一个在 gem

MyGreatEngine
中定义的 Rails 引擎
mge
。该引擎提供两种类型的路由,一种与 API 相关,一种与静态文件相关。

我想导出两组路由,一组用于API,一组用于静态文件。这将允许我将它们安装在使用该引擎的应用程序中的不同位置。例如,一个人可以将这些路线分别安装在

/api/
/static
上,而另一个人可以将它们安装在
/api/v1/
/staticfiles/
上。

由于我还没有找到分割路线的方法,所以我只有两种选择:我可以定义两个单独的引擎,和第三个 gem 来实现它们的共享位,或者我可以将引擎安装在

/
和放弃在应用程序中自定义前缀的能力(因此所有应用程序都将使用
/api/
/static/
)。从我的角度来看,这两种方法都有问题。

ruby-on-rails ruby routes ruby-on-rails-7
1个回答
0
投票

您不必为每个引擎创建单独的 gem。一颗宝石可以包含多个引擎。您可以分别为它们指定路由,并轻松共享其他功能。

MyGreat::APIEngine.routes.draw do
  # ...
end

MyGreat::StaticEngine.routes.draw do
  # ...
end

我很确定这应该可以开箱即用,零额外配置。

© www.soinside.com 2019 - 2024. All rights reserved.