7

Einige Fakten/Annahmen:Ist Ruby on Rails mit Draper oder Apotomo ein MVVM?

  1. Es wird gesagt, dass Ruby on Rails MVC Architektur Muster folgt.
  2. Das MVVM (Model View ViewModel), das von MVC abgeleitet ist, bietet eine Abstraktionsschicht, bei der alle Schaltflächen, Beschriftungen und Links (View) von der Art getrennt sind, wie Modelle Daten exponieren (ViewModel).
  3. Einige Javascript-Frameworks, die beim Erstellen von Single-Page-Apps ausgezeichnet sind, nutzen das MVVM-Muster (z. B. Knockout.js).
  4. Wenn wir Ruby toolbox überprüfen, werden wir mehrere Presenter-Lösungen wie Draper und Apotomo sehen, die nur als ViewModel funktionieren.

Unter der Annahme, es keine bs in meiner ‚Fakten‘ ist Abschnitt, gibt es eine Sache, die mich stört:

  • Können wir Rails mit Draper, Apotomo (oder einem anderen Moderator/Dekorateur) rufen eine MVVM Lösung ?
  • Können wir sagen, dass wir MVVM-Muster mit Rails folgen, wenn wir die Daten aus dem Modell in einer Form eines Decorator/Presenter-Containers mit Draper kapseln?
  • Oder fehlt etwas und wir können es nicht als MVVM bezeichnen, wie Knockout.js?

Vielen Dank für Ihre Einblicke.

Antwort

3

Nicht meiner Meinung nach .... Ich denke an MVVM als Erstellen bestimmter Ansicht Objekte, die von den zugrunde liegenden Daten/Domain-Objekt getrennt sind.

Mit dem Moderatormuster von Rails werden diese Präsentatoren typischerweise das aktive Datensatzobjekt umschließen und Methoden hinzufügen, die sich auf die Präsentation beziehen.

+0

Presenter/Decorator ist eng mit einer Model-Schicht gekoppelt ist sicher der Fall mit Draper - ich stimme zu. Aber was ist mit Apotomo? Stellen Sie sich vor, Sie verwenden Apotomo zum Rendern von Charts (sagen wir higcharts.com). Sie kodieren es so, dass Apotomo-Widget als eine Param-Reihe von Daten (nur Etiketten und Zahlen) verwendet und es in einer vordefinierten Weise anzeigt. Entspricht ein solcher Ansatz Ihren Erwartungen bezüglich einer "Trennung von der Modellschicht"? Danke für deine Antworten und Meinungen, das weiß ich zu schätzen! – socjopata

+0

@socjopata Nun, ich denke, wenn Sie ein Ansichtsobjekt erstellen und es an apotomo senden würden, dann sicher ... aber ich denke nicht, dass apotomo diese Trennung benötigt. –

+1

Ich hoffte irgendwie auf weitere Diskussionen mit anderen Stackoverflow-Benutzern in dieser Angelegenheit. Trotzdem gehört "der grüne Zeck" Ihnen. Vielen Dank für Ihre Meinung :) – socjopata