我可以在新的rails应用程序中使用通用名称空间吗?

qba*_*tek 5 namespaces ruby-on-rails project-structure ruby-on-rails-3

是否可以在公共名称空间下创建整个rails应用程序?

让我们假设我的公司名称是Acme,Inc.我有以下rails项目:Blog,Store,WebService.

默认情况下,如果我执行类似rails new blog生成的应用程序的操作将如下:

module Blog
  class Application < Rails::Application

module Store
  class Application < Rails::Application

module WebService
  class Application < Rails::Application
Run Code Online (Sandbox Code Playgroud)

每个项目/应用程序都是自包含的,并且没有对公司的隐含引用.理想情况下,我希望将所有这些应用程序放在公司命名空间下,因此我们可以将它们称为:

AcmeInc::Blog::Application
  AcmeInc::Blog::Entities::Article

AcmeInc::Store::Application
  AcmeInc::Store::Entities::Product
  AcmeInc::Store::Entities::Order
  AcmeInc::Store::Entities::Customer

etc...
Run Code Online (Sandbox Code Playgroud)

这可能吗?推荐的?


使用:ruby-2.0.0-p451,rails 3.2.17


更新

按照建议执行rails new acme/blog后生成的文件和项目结构的快照:

快照

Nad*_*der 1

正确的方法是使用引擎。每个引擎就像一个独立的应用程序,具有自己的路线、测试套件等,但您可以拥有一些通用的基础设施,例如 rake 任务等。

http://guides.rubyonrails.org/engines.html