Rails 3中的分层MVC?

nev*_*ame 9 model-view-controller ruby-on-rails hmvc

我读过HMVC(分层模型视图控制器),它的结构灵活.

看看这张图:

http://techportal.inviqa.com/wp-content/uploads/2010/02/MVC-HMVC.png

我想知道Rails 3插件是否是Rails 3中HMVC的答案?

编辑:为什么我不能在这个开始赏金?没有赏金按钮,错误?

Wil*_*ill 3

根据对 Toby 答案的评论,您似乎希望能够将 MVC 应用程序用作新应用程序中的组件。Rails Engines(参见http://rails-engines.org)提供了此功能。您只需安装引擎 gem 并将应用程序放置在供应商/插件中,并且其模型/视图/控制器都可以访问。

这并不真正符合 HMVC,其中新应用程序中的控制器委托给其他控制器。但和托比一样,我看不到这样做的好处。

引擎方法的优点在于,您只需将模型的版本添加到新的应用程序 app/model 文件夹中即可覆盖插件中的任何模型(同样适用于视图和控制器)

我已经覆盖了应用程序/视图/布局,以使我的身份验证应用程序/插件具有与其所包含的应用程序相同的外观和感觉。

对于 Rails 3,Railtie 取代了引擎并得到了官方支持(并且实际使用 - Action Mailer 是一个 Railtie 插件。不过我自己还没有使用过它。

请访问http://edgeapi.rubyonrails.org/classes/Rails/Railtie.html查看

关于它的一篇很好的文章也在这里http://www.igvita.com/2010/08/04/rails-3-internals-railtie-creating-plugins/