Ruby on rails Desive gem如何使其应用程序文件夹可供Rails使用?

Ruby on rails Desive gem如何使其应用程序文件夹可供Rails使用?,ruby-on-rails,ruby,ruby-on-rails-3,Ruby On Rails,Ruby,Ruby On Rails 3,我看到了他们的app文件夹,但我看不出这个文件夹是如何提供给Rails的 我的尝试是搜索railtie和views\u path,因为我对编写共享视图和帮助文件的gem感兴趣。我该怎么做 我在哪里可以找到关于这个的文档?我应该搜索什么关键词:railtie、engine?像Gems这样的设计使用Rails中的一个功能,名为 引擎基本上允许您构建自己的功能,并将它们无缝地插入到另一个应用程序中,有效地使引擎中的视图、模型和控制器可用,就好像它们是其中的一部分一样 Rails引擎不仅是在gems中提

我看到了他们的
app
文件夹,但我看不出这个文件夹是如何提供给Rails的

我的尝试是搜索
railtie
views\u path
,因为我对编写共享视图和帮助文件的gem感兴趣。我该怎么做


我在哪里可以找到关于这个的文档?我应该搜索什么关键词:railtie、engine?

像Gems这样的设计使用Rails中的一个功能,名为

引擎基本上允许您构建自己的功能,并将它们无缝地插入到另一个应用程序中,有效地使引擎中的视图、模型和控制器可用,就好像它们是其中的一部分一样

Rails引擎不仅是在gems中提供功能的一种好方法,而且还可以很好地保持您自己的应用程序整洁

如果您想深入了解细节,Rails引擎本身就是一种特殊的引擎,它可以。简单地说,Rails路由器检测到对这些应用程序已“装载”的路径的请求,并将它们路由到引擎提供的控制器,而不是普通控制器


请确保不要将此概念与其他类似宝石的用途混淆

这样的gems提供了一个新的应用程序,不一定需要通过Rails路由器集成到应用程序中

您需要学习更多关于Rack的知识,以了解它是如何工作的,但本质上,对应用程序发出的每个请求都要经过像Omniauth这样的中间件,然后才能实际访问Rails路由器。所述中间件可以自行响应请求(基本上使其停止并且永远不会到达路由器和应用程序的其余部分),或者“增加”请求(例如,Omniauth检查并执行身份验证,然后将数据存储在请求
env
)将请求传递给下一个中间件