将Rails作为gem中的嵌入式应用程序运行

时间:2010-03-24 21:31:57

标签: ruby-on-rails ruby

我试图理解上面(在我的问题的标题中)究竟是什么意思?这可以直接从SpreeCommerce.com项目中获取:

If you’re an experienced Rails developer you may be wondering where your app directory is. Spree actually runs as an embedded Rails app inside of your gem. How do you customize things then? We’ll cover that later in extensions.

来源:http://spreecommerce.com/documentation/getting_started.html

有人可以进一步解释当Rails应用程序在“你的宝石内部”运行时究竟意味着什么

2 个答案:

答案 0 :(得分:0)

使用gem spree,您可以安装应用程序并使用它。很多应用程序需要下载完整包来安装它。当宝石大礼包,你没有。因此,在服务器上安装spree会更容易。

答案 1 :(得分:0)

你引用的短语写得不好而且不是特别有用。你应该带走的是Spree的结构与大多数Rails插件不同。

典型插件:

your rails app <-- plugin functionality

狂欢应用:

spree rails app <-- your site specific code

通常,大多数Rails插件都安装在Rails应用程序的vendor/plugins目录中。类和模块添加了一些附加功能,您可以在代码中引用这些功能(例如,为ResourceController创建子类)。

施普雷不会以这种方式运作。因为,据推测,Spree有很多配置代码,每个Spree实例都会创建一个单独的Rails应用程序 - 一个缺少Rails应用程序的一些更重要的部分(例如app目录)。您的所有特定于站点的代码都位于vendor/extensions/site目录中。这意味着您不必担心编辑任何特定于Spree的代码(因为它全部位于不同的目录中),您可以更轻松地将自己的代码置于源代码控制之下。