使用ActiveSupport管理模块树

时间:2015-05-12 10:08:00

标签: ruby-on-rails ruby activesupport

我有一个Rails项目 MyApp ,我将其分成多个宝石。其中之一是管理用户。

考虑到我想要从ActiveSupport重新加载代码并自动要求,沿命名空间文件夹要求文件。我可以这样组织我的代码:

# MyApp::Users
./lib/my_app/users
./app/controllers/my_app/users/
./rspec/unit/my_app/users/

上面的方法是最干净的方法,但是在具有重复模式my_app/users/的长嵌套路由上会产生结果,这对于懒惰的程序员来说可能是令人筋疲力尽的。由于我仍然需要文件夹命名空间来区分不同gems的代码,我想到滥用根命名空间:

# Users
./lib/users
./app/controllers/users/
./rspec/unit/users/

这不是那么干净,我越是分裂成宝石,我发生命名空间冲突的可能性就越高。

哪种组织模式最常用?哪个是Rails方式?

对于一个图书馆来说,第一个看起来是最好的,但对于大型应用程序来说,让所有时间长的路径感到疲惫,也许对名称冲突的恐惧弊大于利。

0 个答案:

没有答案