Ruby on Rails与Draper或Apotomo是MVVM吗?

soc*_*ata 8 model-view-controller ruby-on-rails decorator mvvm single-page-application

一些事实/假设:

  1. 据说Ruby on Rails遵循MVC架构模式.
  2. MVVM(模型视图ViewModel)派生自MVC,它提供了一个抽象层,其中所有按钮,标签和链接(View)都与模型公开数据的方式(ViewModel)分开.
  3. 一些擅长构建单页应用程序的Javascript框架利用MVVM模式(例如Knockout.js).
  4. 如果我们检查Ruby工具箱,我们会看到一些像Draper和Apotomo这样的演示者解决方案,它们只是作为一个ViewModel工作.

假设我的"事实"部分中没有bs,有一件事困扰着我:

  • 我们可以用Draper,Apotomo(或其他演示者/装饰者)调用Rails作为MVVM解决方案吗?
  • 我们是否可以说我们正在使用Rails跟踪MVVM模式,如果我们使用Draper以decorator/presenter容器的形式封装模型中的数据?
  • 或者有什么缺失,我们不能称它为MVVM,如Knockout.js?

感谢您的见解.

Jes*_*ott 4

我认为不是……我认为 MVVM 创建与底层数据/域对象断开连接的特定视图对象。

使用 Rails 演示者模式,这些演示者通常会环绕活动记录对象并向其添加与演示相关的方法。