Ruby on rails 钢轨螺旋内件

Ruby on rails 钢轨螺旋内件,ruby-on-rails,spree,Ruby On Rails,Spree,我正试图在我的RoR应用程序中使用Spree。好的,当我想定制一些东西时,我会遵循官方网站上的所有指南和常见问题。没关系,没问题。一个我找不到线索的问题——怎么可能,应用/视图、应用/模型文件夹中没有任何内容,但它仍然在工作?我的意思是,是的,我可以在这些文件夹中创建一些东西,并重新定义视图的行为(实际上,这是定制的方式之一),但我真的想了解其内部结构。我是Rails的新手,已经习惯了经典的应用程序文件夹结构。你想知道的是Rails引擎的魔力 RubyonRails允许您定义引擎(您的应用程序也

我正试图在我的RoR应用程序中使用Spree。好的,当我想定制一些东西时,我会遵循官方网站上的所有指南和常见问题。没关系,没问题。一个我找不到线索的问题——怎么可能,应用/视图、应用/模型文件夹中没有任何内容,但它仍然在工作?我的意思是,是的,我可以在这些文件夹中创建一些东西,并重新定义视图的行为(实际上,这是定制的方式之一),但我真的想了解其内部结构。我是Rails的新手,已经习惯了经典的
应用程序
文件夹结构。

你想知道的是Rails引擎的魔力

RubyonRails允许您定义引擎(您的应用程序也是一个引擎)以及当它查找视图/控制器等时。。所有安装的引擎都是搜索路径的一部分

因此,视图位于Spree gem内部,您看不到,但它看起来仍然在那里。 如果您在视图文件夹中放置了同名的内容,它将优先于Gem中Rails引擎中的视图

以下是关于引擎如何在Rails中工作的一个很好的指南:

这些引擎的一个很好的例子是您可能在应用程序中使用的jQuery rails Gem。 它没有任何代码(除了Rails 3.0及以下版本的一些没有资产管道的回退),而是app/assets/javascripts文件夹中的jQuery.js文件。由于引擎处于加载路径中,您可以需要其中的资源。。 引擎本身与应用程序具有相同的文件夹结构(
app/views
app/controllers
…)


您可以在此处查看Spree的内部结构:

非常感谢。这就是我要找的。