我想建立模块化的方式我的应用程序:比如我可能有:创建Rails的宝石
Users->has_and_belongs_to_many->Projects
Users->has_and_belongs_to_many->Tasks
Projects->has_many->Tasks
Tasks->belongs_to->Project (1 task belongs to 1 project.)
注意:项目和任务可以有许多用户。
我想建立这样的方法是这样做的:
- 用户=宝石
- 项目=宝石
- 任务=宝石
每一个可以返回JSON(用于烬)或HTML。两者都不相互依存,这个想法是,每个只是一个细节。 Rails,烬和HTML都只是细节。
我怎么能这样做,并在一天结束时把它们拼在一起就像一个难题?或者这是可行的?
现在我有这个概念的用户几乎完成了。它包含模型,测试,控制器和视图。我可以将它作为宝石进行捆绑,还是应该只捆绑控制器和模型?这个“用户”宝石将使用宝石,使网站看起来不错,事实上所有的“宝石”(项目,任务和用户)将取决于这个宝石。
你会推荐做什么来获得我想要的模块性?这是不错的做法吗?不好的做法?
你或许可以封装了一些这方面的东西到[引擎](http://edgeguides.rubyonrails.org/engines.html)。如果您确定这些都是独立功能,我只会这样做。 – Noz