Ich baue eine Anwendung, in der ich einen Modellbenutzer habe, In der ersten Version der Anwendung wird es keine Handynummer Spalte für die Benutzer in der späteren Version muss es vorhanden sein, gibt es keine Möglichkeit, Modellen Versionierung hinzuzufügen, so dass die Validierung aktiver Datensätze in eine bestimmte Version geschrieben werden kann.API Versionierung für aktive Modelle
2
A
Antwort
1
Halten Sie die alten Benutzer intakt und Unterklasse die neuen Benutzer. Da ActiveRecord die Vererbung einzelner Tabellen unterstützt, wird die Datenbank eine neue Spalte namens type
haben, um zwischen alten und neuen Benutzern zu unterscheiden. Und Ihre Validierung wird nur für die neuen Benutzer sein.
Wenn Sie sie als unterschiedliche Klassen beibehalten, spiegelt das Ihr Geschäftsmodell wider, dass die alten Benutzer keine Handynummer haben.
Verwandte Themen
- 1. REST-API-Versionierung - Warum sind keine Modelle versioniert
- 2. Rails API Versionierung, Routing-Problem
- 3. Akka Java API artifactId Versionierung?
- 4. Aktive Collab-API-Ausnahmebehandlung
- 5. Gute Ressourcen für Versionierung
- 6. AngularJS/Web API Javascript Dateien Versionierung
- 7. WinRT und fehlende Web-API-Modelle für Amazon API-Zugriff
- 8. API-Versionierung von Rails auf Methodenebene
- 9. web api 2 Versionierung mit Attribut-Routing
- 10. API Versionierung mit ASP.NET Web API und Entity Framework
- 11. Grunt-Plugin für Vermögenswerte Versionierung
- 12. Jackson 2 Unterstützung für Versionierung
- 13. Youtube api v3 bekommen aktive Streams für die Kanalliste
- 14. Rückgabewerte für aktive Objekte
- 15. Aktive Rekord für SQL
- 16. Aktive Sortierung für Spalten
- 17. Aktive Collab-API - Nächste Rechnungsnummer abrufen
- 18. Django Rest Framework Versionierung
- 19. Javadoc Versionierung
- 20. Restful Entity Versionierung
- 21. Java Versionierung
- 22. Kreuzvalidierung für glm() Modelle
- 23. Anzeigename für Modelle definieren
- 24. Namenskonvention für Django-Modelle
- 25. Servicestack nuget Versionierung
- 26. Active Shape Modelle vs Active Appearance Modelle
- 27. Wie kann Versionierung in ASP.NET Core Web API durchgeführt werden
- 28. C# Versionierung von Referenzen für eine Konsolenanwendung
- 29. Was nutzt Docker für die (Bild-) Versionierung?
- 30. Semantische Versionierung von REST apis?
Das mag eine der Lösungen sein, aber was ich erwarte ist, gibt es eine Möglichkeit, den aktiven Modellen Versionierung hinzuzufügen, um die Validierung zu erwähnen, anstatt eine Spalte zur Tabelle hinzuzufügen, zum Beispiel mit 'validates_presense_of: mobile_number' nur für die zweite Version. –
Wenn sich eine * Version * anders verhält als eine andere Version, werden entweder Bedingungen in den Code geschrieben ('if' oder [' case'] (http://ruby-doc.com/docs/ProgrammingRuby/html/tut_expressions.html#) S5) Aussagen) oder Sie verwenden Vererbung und polymorphe Methoden, um die Unterschiede auszudrücken. Da alle neuen Benutzer verwendet werden können, wenn der Code einen alten Benutzer erwartet, glaube ich, dass neue Benutzer ** alte Benutzer nach dem [Liskov-Substitutionsprinzip] sind (https://en.wikipedia.org/wiki/Liskov_substitution_principle). – wigy