0
ein Mongoid Modell Gegeben:Standardwert für Mongoid Hash Feld Accessor
class Counts
include Mongoid::Document
# lists of tag counts
field :tags, type: Hash, default: {}
end
c = Counts.new(tags = {new: 12, old: 7})
Ich möchte c#tags[]
so außer Kraft zu setzen, wenn ein Schlüssel nicht auf dem tags
Feld gesetzt ist, sollte es einen Standardwert von 0
zurückgeben statt von nil
wie folgt aus:
c.tags['ancient']
# => 0
Interessant, aber dies wird nur den Standardwert einstellen, wenn keiner gespeichert ist (dh. wenn das DB-Feld noch 'nil' ist). Sobald ein Wert gesetzt ist, werden alle anderen Werte wieder auf Null gesetzt. Ich dachte darüber nach, einen Hash-Accessor für das 'tags'-Feld zu definieren, wie' def tags [] (key) ', aber es sieht so aus, als müsste ich die Hash-Klasse erben, um eine solche Änderung vorzunehmen –