Weiß jemand, ob Mongoid Unterstützung für Alias-Feldnamen eingebaut hat? Ich habe einige Tests durchgeführt, wo ich eine Sammlung mit einer minimalen Anzahl von Feldern (7 Felder) habe. Wenn ich beschreibende Namen verwende und echte Daten lade und dann stark verkürzte Namen benutze und dieselben realen Daten lade, sehe ich eine 40% ige Reduktion der Gesamtgröße meiner Sammlung. Beim Betrachten anderer Treiber für MongoDB (nicht Ruby) sehe ich, dass einige von ihnen Unterstützung eingebaut haben, wo Sie Code gegen einen beschreibenden Namen schreiben können, aber die Persistenz ist schlau genug, Entwickler-definierte Aliase zu verwenden. Ich versuche nur herauszufinden, ob Mongoid etwas Ähnliches hat.Feld-Aliasing in Mongoid
Antwort
Folgendes muss eigentlich auch für das Bestehen eines Hash zu neuen oder update_attributes aufgenommen werden:
alias :filtered_process :process
def process(attrs = nil)
attrs[:fn] = attrs[:first_name] unless attrs.nil?
filtered_process(attrs)
end
Dies ermöglicht dem Alias in das Feld der Anrufe erstellen oder zu aktualisieren abgebildet werden. Es wäre trivial, dann Alias zu Feldzuordnungen zu verfolgen, um diesen Prozess zu abstrahieren.
Nach this answer, sollten Sie in der Lage sein, nur alias
verwenden wie folgt aus:
class Foo
include Mongoid::Document
field :fn, :type => String
alias :first_name :fn
end
Beachten Sie, dass dies nicht im Stich lassen den Alias in Abfragen verwenden und einige Fehler verursachen können. Es sollte für die einfache Verwendung in Instanzmethoden und -ansichten geeignet sein.
eigentlich der beste Weg, dies zu tun, ist nicht rubin Alias aber:
field :fn, :as => :firstname
wie hier beschrieben: http://groups.google.com/group/mongoid/browse_thread/thread/ce3298d6a167bd70
- 1. Store-Funktionen in Mongoid mit Mongoid 3
- 2. Mongoid nicht in Abfrage
- 3. Transaktionen in Mongoid (MongoDB)
- 4. Schneidene Mongoid "in" -Queries
- 5. Gelddarstellung in Mongoid
- 6. Upsert in Mongoid
- 7. sinatra + mongoid
- 8. Löschen per ID in Mongoid
- 9. Mongoid Fremdschlüssel in eingebettete Dokument
- 10. schiebt Artikel in mongoid Array
- 11. Was inverse_of bedeutet in Mongoid?
- 12. TimeStamps in Mongoid Embedded Dokumente
- 13. zählen vs all.count in mongoid
- 14. Mongoid - Array Zuordnung
- 15. Mongoid :: Fehler :: DocumentNotFound raise_not_found_error
- 16. MongoID finden oder find_by
- 17. Mongoid, Hilfe mit Benachrichtigungen
- 18. Mongoid mehrere eingebetteten Dokumente
- 19. Mongoid Erweiterung .ne
- 20. Mongoid-Array mit Leerzeichen
- 21. Schienen/Mongoid Datenbankmigrationen
- 22. Mongoid Query-Dokumentation
- 23. Mongoid ohne Rails
- 24. Mongoid Versioning Scopes
- 25. Mongoid ODER Abfrage Syntax
- 26. Mongo/Mongoid erratische Verhalten
- 27. find_by_sql Entsprechung für Mongoid?
- 28. Mongoid: Und - Oder Abfrage
- 29. Hat Mongoid Map/Reduce?
- 30. mongoid as_document Fehler
Dies ist nicht der beste Weg, es zu tun, finden Sie in der Antwort von z3cko als die Ruby Alias fügt einen anderen Methodennamen hinzu, wenn Mongoid bereits eine Möglichkeit hat, dies zu tun. –